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 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_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.
  liGL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, 
 softpipe/li
  liGL_ARB_texture_query_lod on radeonsi/li
  liGL_ARB_viewport_array on nvc0/li
 -liGL_ARB_fragment_layer_viewport on nv50/li
 +liGL_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.

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 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_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.
  liGL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, 
 softpipe/li
  liGL_ARB_texture_query_lod on radeonsi/li
  liGL_ARB_viewport_array on nvc0/li
 -liGL_ARB_fragment_layer_viewport on nv50/li
 +liGL_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
___
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 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_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.
  liGL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, 
 softpipe/li
  liGL_ARB_texture_query_lod on radeonsi/li
  liGL_ARB_viewport_array on nvc0/li
 -liGL_ARB_fragment_layer_viewport on nv50/li
 +liGL_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


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 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_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.
  liGL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, 
 softpipe/li
  liGL_ARB_texture_query_lod on radeonsi/li
  liGL_ARB_viewport_array on nvc0/li
 -liGL_ARB_fragment_layer_viewport on nv50/li
 +liGL_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


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 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_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.
  liGL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, 
 softpipe/li
  liGL_ARB_texture_query_lod on radeonsi/li
  liGL_ARB_viewport_array on nvc0/li
 -liGL_ARB_fragment_layer_viewport on nv50/li
 +liGL_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


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

2014-06-22 Thread 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_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.
 liGL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, 
softpipe/li
 liGL_ARB_texture_query_lod on radeonsi/li
 liGL_ARB_viewport_array on nvc0/li
-liGL_ARB_fragment_layer_viewport on nv50/li
+liGL_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;
}
 
-- 
1.8.5.5

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