[Mesa-dev] [PATCH 4/4] nvc0: enable ARB_fragment_layer_viewport
Roland Scheidegger
sroland at vmware.com
Mon Jun 23 04:55:29 PDT 2014
Am 23.06.2014 12:49, schrieb Roland Scheidegger:
> Am 22.06.2014 17:10, schrieb Ilia Mirkin:
>> Signed-off-by: Ilia Mirkin <imirkin at 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...)
roland
More information about the mesa-dev
mailing list