<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<br>
<div class="moz-cite-prefix">On 11/07/2016 11:31 AM, Nayan Deshmukh
wrote:<br>
</div>
<blockquote
cite="mid:CAFd4ddwBuMcVyJQu7z0AjH+i1VHqyLwU9Czn8jZXABP4AQWSCw@mail.gmail.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, Nov 7, 2016 at 8:31 PM, Leo
Liu <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:leo.liu@amd.com" target="_blank">leo.liu@amd.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex"><span><br>
<br>
On 11/05/2016 02:44 AM, Nayan Deshmukh wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px
0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
Hi Leo,<br>
<br>
Thanks for the reference patch.<br>
<br>
There are only a number of output surfaces
taking turns as the<br>
mixer render targets, so we probably can use the same
pixmap<br>
corresponding to each of output surface texture.<br>
<br>
The mixer renders to a VdpOutputSurface which is
provided to it by the<br>
application, so we can't make any assumptions on the
surface that will<br>
be provided it may or may not be the same. Instead we
could have<br>
additional fields in vlVdpOutputSurface which stores
the handle and<br>
pixamp of the texture.<br>
</blockquote>
<br>
</span>
What I meant is in vl dri3 to store certain numbers of
pixmaps, and update them when texture, handle, size<br>
changed by calling "pixmap_from_buffer", if the same
buffer got reused, and then we just can use the same
pixmap<br>
for present.<br>
<br>
I just tried the mpv, if no resizing, there are only 3
textures in turn.<br>
<br>
I think we should avoid this "creating new pixmap frame by
frame", what do you think?<br>
<br>
</blockquote>
<div>I agree this needs to be avoided.</div>
<div><br>
</div>
<div><span style="font-size:12.8px"> /* In case of a
single gpu we need to get the</span></div>
<div><span style="font-size:12.8px"> * handle and pixmap
for the texture that is set</span><br
style="font-size:12.8px">
<span style="font-size:12.8px"> */</span><br
style="font-size:12.8px">
<span style="font-size:12.8px"> if (buffer &&
scrn->output_texture &&</span><br
style="font-size:12.8px">
<span style="font-size:12.8px">
!scrn->is_different_gpu)</span><br
style="font-size:12.8px">
<span style="font-size:12.8px"> allocate_new_buffer
= true;</span><br>
</div>
<div><br>
</div>
<div>For this case we can simply check if the texture is
present among the available buffers and allocate a new </div>
<div>buffer in case it is not found, but avoid deleting the
current buffer if the no. of buffers is less than a fixed</div>
<div>value like 3.</div>
</div>
</div>
</div>
</blockquote>
<br>
Exactly, and we could have a fixed number as 3 or more.<br>
<br>
<blockquote
cite="mid:CAFd4ddwBuMcVyJQu7z0AjH+i1VHqyLwU9Czn8jZXABP4AQWSCw@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div><br>
</div>
<div>However I will be busy for 2 weeks so it going to take
sometime to complete the patch.</div>
</div>
</div>
</div>
</blockquote>
<br>
I think that's okay, as an optimization work, it should be no rush,
and we like it better.<br>
<br>
Thank you for your effort. Appreciated!<br>
<br>
Leo<br>
<br>
<blockquote
cite="mid:CAFd4ddwBuMcVyJQu7z0AjH+i1VHqyLwU9Czn8jZXABP4AQWSCw@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div><br>
</div>
<div>Regards,</div>
<div>Nayan.</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">Regards,<br>
Leo<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<br>
Regards,<br>
Nayan<br>
</blockquote>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
<br>
</body>
</html>