Well, with Roland's fix to the draw module, llvmpipe works with my tests as well. Is it likely that r600 will work as-is, or do you think it'll require some fixes? I can try to find someone with the requisite hw...
On Mon, Jun 23, 2014 at 4:57 PM, Marek Olšák <mar...@gmail.com> wrote: > The cap can be removed later if needed. > > Marek > > On Mon, Jun 23, 2014 at 2:50 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: >> On Mon, Jun 23, 2014 at 7:55 AM, Roland Scheidegger <srol...@vmware.com> >> wrote: >>> Am 23.06.2014 12:49, schrieb Roland Scheidegger: >>>> Am 22.06.2014 17:10, schrieb Ilia Mirkin: >>>>> Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> >>>>> --- >>>>> docs/GL3.txt | 2 +- >>>>> docs/relnotes/10.3.html | 2 +- >>>>> src/gallium/drivers/nouveau/nvc0/nvc0_program.c | 2 ++ >>>>> src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 2 +- >>>>> 4 files changed, 5 insertions(+), 3 deletions(-) >>>>> >>>>> diff --git a/docs/GL3.txt b/docs/GL3.txt >>>>> index c47a54b..8cfa247 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 DONE (nv50) >>>>> + GL_ARB_fragment_layer_viewport DONE (nv50, nvc0) >>>>> 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 5e29f2d..b65e347 100644 >>>>> --- a/docs/relnotes/10.3.html >>>>> +++ b/docs/relnotes/10.3.html >>>>> @@ -53,7 +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</li> >>>>> +<li>GL_ARB_fragment_layer_viewport on nv50, nvc0</li> >>>>> </ul> >>>>> >>>>> >>>>> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_program.c >>>>> b/src/gallium/drivers/nouveau/nvc0/nvc0_program.c >>>>> index 667fbc8..ad8d1b0 100644 >>>>> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_program.c >>>>> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_program.c >>>>> @@ -36,6 +36,8 @@ nvc0_shader_input_address(unsigned sn, unsigned si, >>>>> unsigned ubase) >>>>> switch (sn) { >>>>> case NV50_SEMANTIC_TESSFACTOR: return 0x000 + si * 0x4; >>>>> case TGSI_SEMANTIC_PRIMID: return 0x060; >>>>> + case TGSI_SEMANTIC_LAYER: return 0x064; >>>>> + case TGSI_SEMANTIC_VIEWPORT_INDEX:return 0x068; >>>>> case TGSI_SEMANTIC_PSIZE: return 0x06c; >>>>> case TGSI_SEMANTIC_POSITION: return 0x070; >>>>> case TGSI_SEMANTIC_GENERIC: return ubase + si * 0x10; >>>>> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c >>>>> b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c >>>>> index 2c8f1ca..c02e10a 100644 >>>>> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c >>>>> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c >>>>> @@ -164,6 +164,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, >>>>> enum pipe_cap param) >>>>> case PIPE_CAP_SAMPLE_SHADING: >>>>> case PIPE_CAP_TEXTURE_GATHER_OFFSETS: >>>>> case PIPE_CAP_TEXTURE_GATHER_SM5: >>>>> + case PIPE_CAP_TGSI_FS_LAYER_VIEWPORT: >>>>> return 1; >>>>> case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE: >>>>> return (class_3d >= NVE4_3D_CLASS) ? 1 : 0; >>>>> @@ -181,7 +182,6 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, >>>>> enum pipe_cap param) >>>>> case PIPE_CAP_TGSI_VS_LAYER: >>>>> case PIPE_CAP_FAKE_SW_MSAA: >>>>> case PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION: >>>>> - case PIPE_CAP_TGSI_FS_LAYER_VIEWPORT: >>>>> return 0; >>>>> } >>>>> >>>>> >>>> >>>> Is that cap bit really required? Everybody who can do layered viewports >>>> ought to be able to do this (as it's required by d3d10). Though I can't >>>> say if right now all drivers which support layered viewports can already >>>> do it (llvmpipe can), but it might be trivial to fix those up which can't. >>>> >>> >>> (Of course that should have been layered fbs and multiple viewports, >>> that short-notation I used there doesn't make much sense...) >> >> Well, I think right now the only drivers that support multiple >> viewports are llvmpipe, nv50, nvc0, and r600. I can test out llvmpipe >> but would need some help for r600. Would love not to have to add the >> cap :) >> >> -ilia >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev