<html><head></head><body>You cannot have direct rendering with invalid pictures. The vout wrapper will force non-DR in the later case.<br><br>And all I'm saying is that resizing a display cannot fail, at least not on X11 and Win32. If you cannot handle a given size, you have to ensure that the window provider will never report it, by whatever means.<br><br><div class="gmail_quote">Le 18 janvier 2019 10:39:31 GMT+02:00, Steve Lhomme <robux4@ycbcr.xyz> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">On 17/01/2019 17:06, Rémi Denis-Courmont wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">Le torstaina 17. tammikuuta 2019, 17.46.15 EET Steve Lhomme a écrit :<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;">On 16/01/2019 12:41, Rémi Denis-Courmont wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;">This is obviously wrong since it ends with an assertion failure at<br>opengl/display.c:228. And thus the commits before it make no sense.<br></blockquote> It asserts there because it's not meant to handle<br> VOUT_DISPLAY_RESET_PICTURES. And it receives that because during a<br> VOUT_DISPLAY_CHANGE_DISPLAY_SIZE/VOUT_DISPLAY_CHANGE_DISPLAY_FILLED/VOUT_DIS<br> PLAY_CHANGE_ZOOM it returned an error from a call to vlc_gl_Resize(). If the<br> code is not ready to handle such an error (why it occurs for you is another<br> thing to look at) then it will also assert on the call right after:<br><br> if(vlc_gl_MakeCurrent(sys->gl)!=VLC_SUCCESS)<br><br>       returnVLC_EGENERIC;<br><br> So I don't see how the commit is wrong. Either the DISPLAY_CHANGE_*<br> events can never return an error from there, or the code needs to be<br> ready to handle it.<br></blockquote>Returning an error from those controls just means you need to reset the<br>display input format,<br></blockquote><br>This wasn't clear to me.<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">and the pool if the display was not ported yet.<br></blockquote><br>The display pool ? What if direct rendering is on ? That means the <br>decoder pool as well. Right now the comment you added says "internal <br>buffers" that's rather vague.<br><br>><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> Returning an error does *not* mean that you reject the change. You *cannot*<br> reject the change. It simply does not work and cannot that way. Since the<br> control is dispatched asynchronously, it is too late to reject the change.<br><br> I am planning to address that for other reasons than error handling, but even<br> then, most (all except maybe Wayland) windowing systems lack provisions for<br> rejecting a window size change.<br><br> So if you have a failure at that stage, then you have two options:<br> - render wrong going forward, or<br> - stop rendering and discard pictures until further notice.<br><br> Either way, you don't need to return an error to the core.<br></blockquote>That would be true if OpenGL wasn't handled in the core. But this <br>function clearly returns whether the surface dimensions were succesfully <br>changed:<br><a href="http://git.videolan.org/?p=vlc.git;a=blob;f=src/video_output/opengl.c;h=c288fd83b429dfeaabdef4432dfacc96650e5c80;hb=HEAD#l173">http://git.videolan.org/?p=vlc.git;a=blob;f=src/video_output/opengl.c;h=c288fd83b429dfeaabdef4432dfacc96650e5c80;hb=HEAD#l173</a><br><br>Telling it that it worked when it didn't will not do any good.<hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a></pre></blockquote></div><br>-- <br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.</body></html>