On Mon, Jun 23, 2014 at 11:06 AM, Roland Scheidegger <srol...@vmware.com> wrote: > Am 23.06.2014 16:43, schrieb Ilia Mirkin: >> On Mon, Jun 23, 2014 at 9:51 AM, Ilia Mirkin <imir...@alum.mit.edu> wrote: >>> On Mon, Jun 23, 2014 at 9:39 AM, Ilia Mirkin <imir...@alum.mit.edu> wrote: >>>> If multiple viewports are supported, that implies the presence of a GS >>>> and layered rendering, so we can enable ARB_fragment_layer_viewport as >>>> well. >>>> >>>> Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> >>>> --- >>>> >>>> Untested on r600, but nv50/nvc0/llvmpipe seem to pass basic testing. >>> >>> Grr... actually llvmpipe fails for viewport, but works for layer. >> >> But... it draws all black instead of red, which means it's probably >> either my or llvmpipe's understanding of default viewport state that's >> wrong. I assumed that by default viewports were initialized s.t. they >> would "Just Work" without having to be touched. Or... it's not >> clamping the viewport index properly. Will investigate later. > Hmm I'm not sure. This was tested with d3d10 rules which of course > doesn't have the commands to set all viewports at once. But this is > handled by the state tracker.
Well, the tests don't set viewports at all. I was under the (potentially incorrect) assumption that the default state was good enough. > The index of the viewport itself isn't clamped but set to to zero if it > exceeds 16 (PIPE_MAX_VIEWPORTS) but only for the actual selection of the > viewport, again this is required by d3d10. GL has undefined results > there so this should be ok (and hw will do near certainly the same > anyway). The value you get in the fragment shader though will NOT be > clamped, which as far as I can tell is required by both d3d10 and GL. > But of course there could always be some other bug... Bleh. Well, if GL has undefined rendering results for invalid gl_ViewportIndex, then my viewport test won't work -- it checks various out-of-bounds values. I'll scale it back to only testing legal values. > > Roland > >> >> If someone with r600g could test this series out with the 2 piglit >> tests I sent to piglit@, that'd be great >> (https://urldefense.proofpoint.com/v1/url?u=http://patchwork.freedesktop.org/patch/28375/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F4msKE2WxRzA%2BwN%2B25muztFm5TSPwE8HKJfWfR2NgfY%3D%0A&m=J%2BXkuCJ6cA3U%2F2geD8pCPdQJ3h9Cu5xb%2BmaqRqBDoq4%3D%0A&s=67e6d3d7200289af788142c217a7c1cb598ccbeb7122ec52a358f60ffd98be2d >> -- no actual deps on >> chrisf's series if you run them directly via shader_runner.) >> >>> >>>> >>>> docs/GL3.txt | 2 +- >>>> docs/relnotes/10.3.html | 1 + >>>> src/mesa/state_tracker/st_extensions.c | 1 + >>>> 3 files changed, 3 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/docs/GL3.txt b/docs/GL3.txt >>>> index 47165fe..ab90997 100644 >>>> --- a/docs/GL3.txt >>>> +++ b/docs/GL3.txt >>>> @@ -161,7 +161,7 @@ GL 4.3: >>>> GL_ARB_copy_image not started >>>> GL_KHR_debug DONE (all drivers) >>>> GL_ARB_explicit_uniform_location DONE (all drivers >>>> that support GLSL) >>>> - GL_ARB_fragment_layer_viewport not started >>>> + GL_ARB_fragment_layer_viewport DONE (nv50, nvc0, >>>> r600) >>>> GL_ARB_framebuffer_no_attachments not started >>>> GL_ARB_internalformat_query2 not started >>>> GL_ARB_invalidate_subdata DONE (all drivers) >>>> diff --git a/docs/relnotes/10.3.html b/docs/relnotes/10.3.html >>>> index ecc8580..99e0311 100644 >>>> --- a/docs/relnotes/10.3.html >>>> +++ b/docs/relnotes/10.3.html >>>> @@ -53,6 +53,7 @@ Note: some of the new features are only available with >>>> certain drivers. >>>> <li>GL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, >>>> softpipe</li> >>>> <li>GL_ARB_texture_query_lod on radeonsi</li> >>>> <li>GL_ARB_viewport_array on nvc0</li> >>>> +<li>GL_ARB_fragment_layer_viewport on nv50, nvc0, llvmpipe, r600</li> >>>> </ul> >>>> >>>> >>>> diff --git a/src/mesa/state_tracker/st_extensions.c >>>> b/src/mesa/state_tracker/st_extensions.c >>>> index e938046..8cd6aa3 100644 >>>> --- a/src/mesa/state_tracker/st_extensions.c >>>> +++ b/src/mesa/state_tracker/st_extensions.c >>>> @@ -809,6 +809,7 @@ void st_init_extensions(struct st_context *st) >>>> ctx->Const.ViewportBounds.Min = -16384.0; >>>> ctx->Const.ViewportBounds.Max = 16384.0; >>>> ctx->Extensions.ARB_viewport_array = GL_TRUE; >>>> + ctx->Extensions.ARB_fragment_layer_viewport = GL_TRUE; >>>> } >>>> } >>>> if (ctx->Const.MaxProgramTextureGatherComponents > 0) >>>> -- >>>> 1.8.5.5 >>>> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://urldefense.proofpoint.com/v1/url?u=http://lists.freedesktop.org/mailman/listinfo/mesa-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F4msKE2WxRzA%2BwN%2B25muztFm5TSPwE8HKJfWfR2NgfY%3D%0A&m=J%2BXkuCJ6cA3U%2F2geD8pCPdQJ3h9Cu5xb%2BmaqRqBDoq4%3D%0A&s=a6d6c596fee80884f66960766ae2d42d9f8426eabc4a352bc48ed38e5bb811e2 >> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev