<div dir="ltr">On 15 July 2013 17:14, Jordan Justen <span dir="ltr"><<a href="mailto:jordan.l.justen@intel.com" target="_blank">jordan.l.justen@intel.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">git://<a href="http://people.freedesktop.org/~jljusten/mesa" target="_blank">people.freedesktop.org/~jljusten/mesa</a> ivb-full-depth-buffer-v1<br>

<br>
This series converts DEPTH_BUFFER to use the LOD and<br>
minimum array element fields and always points the<br>
depth, hiz and stencil buffers at the top of the<br>
miptree surface.<br>
<br>
This should allows us to support layered rendering,<br>
although testing of this is not completed. Layered<br>
rendering will be required for GL 3.2 / GLSL 1.50<br>
support, but it can also be exposed via the<br>
GL_AMD_vertex_shader_layer extension.<br></blockquote><div><br></div><div>I sent out comments on patches 2, 6, and 11.  The remainder are:<br><br>Reviewed-by: Paul Berry <<a href="mailto:stereotype441@gmail.com">stereotype441@gmail.com</a>><br>
<br></div><div>One question, though:<br><br></div><div>One of the things I recall us talking about is the problem that Intel hardware assumes that we always render to the same level/layer of the depth buffer as we do to the stencil buffer.  When the framebuffer is layered, that happens automatically, but when the framebuffer isn't layered, there's nothing in the GL API to enforce this restriction.<br>
<br>I recall some time ago talking about two possible solutions to that:<br><br></div><div>(a) If the user tries to create a non-layered framebuffer where the depth and stencil attachments use different level/layer settings, mark the framebuffer as incomplete using FRAMEBUFFER_UNSUPPORTED (the GL spec allows for this in order to accommodate implementation-dependent restrictions, and it sounds like this is precisely the situation we find ourselves in)<br>
<br>(b) If the user tries to render to a non-layered framebuffer in which the depth and stencil attachments use different level/layer settings, blit into a temporary non-layered depth/stencil buffer for the duration of rendering (much of the infrastructure behind brw_workaround_depthstencil_alignment() could probably be re-used for this purpose).<br>
<br></div><div>I don't see your series doing either of these two things.  Am I missing something?<br><br>My preference, incidentally, is to do (a), since it's far easier, and it's totally permitted by the GL spec.  If we discover that marking the framebuffer as incomplete is causing real-world apps to fail, we can always switch to (b) in the future.<br>
</div></div></div></div>