Re: [Mesa-dev] [PATCH 4/4] nvc0: enable ARB_fragment_layer_viewport

2014-06-23 Thread Ilia Mirkin
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  wrote:
> The cap can be removed later if needed.
>
> Marek
>
> On Mon, Jun 23, 2014 at 2:50 PM, Ilia Mirkin  wrote:
>> On Mon, Jun 23, 2014 at 7:55 AM, Roland Scheidegger  
>> wrote:
>>> Am 23.06.2014 12:49, schrieb Roland Scheidegger:
 Am 22.06.2014 17:10, schrieb Ilia Mirkin:
> Signed-off-by: Ilia Mirkin 
> ---
>  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_imagenot 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_attachmentsnot started
>GL_ARB_internalformat_query2 not started
>GL_ARB_invalidate_subdataDONE (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.
>  GL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, 
> softpipe
>  GL_ARB_texture_query_lod on radeonsi
>  GL_ARB_viewport_array on nvc0
> -GL_ARB_fragment_layer_viewport on nv50
> +GL_ARB_fragment_layer_viewport on nv50, nvc0
>  
>
>
> 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/mes

Re: [Mesa-dev] [PATCH 4/4] nvc0: enable ARB_fragment_layer_viewport

2014-06-23 Thread Marek Olšák
The cap can be removed later if needed.

Marek

On Mon, Jun 23, 2014 at 2:50 PM, Ilia Mirkin  wrote:
> On Mon, Jun 23, 2014 at 7:55 AM, Roland Scheidegger  
> wrote:
>> Am 23.06.2014 12:49, schrieb Roland Scheidegger:
>>> Am 22.06.2014 17:10, schrieb Ilia Mirkin:
 Signed-off-by: Ilia Mirkin 
 ---
  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_imagenot 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_attachmentsnot started
GL_ARB_internalformat_query2 not started
GL_ARB_invalidate_subdataDONE (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.
  GL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, 
 softpipe
  GL_ARB_texture_query_lod on radeonsi
  GL_ARB_viewport_array on nvc0
 -GL_ARB_fragment_layer_viewport on nv50
 +GL_ARB_fragment_layer_viewport on nv50, nvc0
  


 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


Re: [Mesa-dev] [PATCH 4/4] nvc0: enable ARB_fragment_layer_viewport

2014-06-23 Thread Ilia Mirkin
On Mon, Jun 23, 2014 at 7:55 AM, Roland Scheidegger  wrote:
> Am 23.06.2014 12:49, schrieb Roland Scheidegger:
>> Am 22.06.2014 17:10, schrieb Ilia Mirkin:
>>> Signed-off-by: Ilia Mirkin 
>>> ---
>>>  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_imagenot 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_attachmentsnot started
>>>GL_ARB_internalformat_query2 not started
>>>GL_ARB_invalidate_subdataDONE (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.
>>>  GL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, 
>>> softpipe
>>>  GL_ARB_texture_query_lod on radeonsi
>>>  GL_ARB_viewport_array on nvc0
>>> -GL_ARB_fragment_layer_viewport on nv50
>>> +GL_ARB_fragment_layer_viewport on nv50, nvc0
>>>  
>>>
>>>
>>> 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


Re: [Mesa-dev] [PATCH 4/4] nvc0: enable ARB_fragment_layer_viewport

2014-06-23 Thread Roland Scheidegger
Am 23.06.2014 12:49, schrieb Roland Scheidegger:
> Am 22.06.2014 17:10, schrieb Ilia Mirkin:
>> Signed-off-by: Ilia Mirkin 
>> ---
>>  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_imagenot 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_attachmentsnot started
>>GL_ARB_internalformat_query2 not started
>>GL_ARB_invalidate_subdataDONE (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.
>>  GL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, 
>> softpipe
>>  GL_ARB_texture_query_lod on radeonsi
>>  GL_ARB_viewport_array on nvc0
>> -GL_ARB_fragment_layer_viewport on nv50
>> +GL_ARB_fragment_layer_viewport on nv50, nvc0
>>  
>>  
>>  
>> 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
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 4/4] nvc0: enable ARB_fragment_layer_viewport

2014-06-23 Thread Roland Scheidegger
Am 22.06.2014 17:10, schrieb Ilia Mirkin:
> Signed-off-by: Ilia Mirkin 
> ---
>  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_imagenot 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_attachmentsnot started
>GL_ARB_internalformat_query2 not started
>GL_ARB_invalidate_subdataDONE (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.
>  GL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, 
> softpipe
>  GL_ARB_texture_query_lod on radeonsi
>  GL_ARB_viewport_array on nvc0
> -GL_ARB_fragment_layer_viewport on nv50
> +GL_ARB_fragment_layer_viewport on nv50, nvc0
>  
>  
>  
> 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.

Roland
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev