Re: [Mesa-dev] [PATCH 4/7] gallium: add PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS

2018-09-02 Thread Marek Olšák
screen.rst is missing documentation for this cap.

Marek

On Thu, Aug 30, 2018 at 9:40 AM, Erik Faye-Lund
 wrote:
> This gets rid of a r600 specific hack in the state-tracker, and prepares
> for other drivers to be able to use hw-atomics.
>
> While we're at it, clean up some indentation in the various drivers.
>
> Signed-off-by: Erik Faye-Lund 
> ---
>  src/gallium/drivers/etnaviv/etnaviv_screen.c | 3 +++
>  src/gallium/drivers/freedreno/freedreno_screen.c | 3 +++
>  src/gallium/drivers/nouveau/nv30/nv30_screen.c   | 2 ++
>  src/gallium/drivers/nouveau/nv50/nv50_screen.c   | 2 ++
>  src/gallium/drivers/nouveau/nvc0/nvc0_screen.c   | 2 ++
>  src/gallium/drivers/r300/r300_screen.c   | 6 +-
>  src/gallium/drivers/r600/r600_pipe.c | 4 
>  src/gallium/drivers/radeonsi/si_get.c| 2 ++
>  src/gallium/drivers/svga/svga_screen.c   | 2 ++
>  src/gallium/drivers/v3d/v3d_screen.c | 8 ++--
>  src/gallium/drivers/vc4/vc4_screen.c | 8 ++--
>  src/gallium/drivers/virgl/virgl_screen.c | 2 ++
>  src/gallium/include/pipe/p_defines.h | 1 +
>  src/mesa/state_tracker/st_extensions.c   | 9 +
>  14 files changed, 45 insertions(+), 9 deletions(-)
>
> diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c 
> b/src/gallium/drivers/etnaviv/etnaviv_screen.c
> index 9669bd2f60..108b97d35c 100644
> --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c
> +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c
> @@ -289,8 +289,11 @@ etna_screen_get_param(struct pipe_screen *pscreen, enum 
> pipe_cap param)
> case PIPE_CAP_MAX_GS_INVOCATIONS:
>return 32;
>
> +   /* shader buffer objects */
> case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
>return 1 << 27;
> +   case PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS:
> +  return 0;
>
> /* Stream output. */
> case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS:
> diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c 
> b/src/gallium/drivers/freedreno/freedreno_screen.c
> index 489986703c..af44ab698e 100644
> --- a/src/gallium/drivers/freedreno/freedreno_screen.c
> +++ b/src/gallium/drivers/freedreno/freedreno_screen.c
> @@ -376,8 +376,11 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum 
> pipe_cap param)
> case PIPE_CAP_MAX_GS_INVOCATIONS:
> return 32;
>
> +   /* shader buffer objects */
> case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
>  return 1 << 27;
> +   case PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS:
> +   return 0;
>
> case PIPE_CAP_CONTEXT_PRIORITY_MASK:
> return screen->priority_mask;
> diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c 
> b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
> index da7ebecd5d..d52d8f3988 100644
> --- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c
> +++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
> @@ -245,6 +245,8 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum 
> pipe_cap param)
>return 32;
> case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
>return 1 << 27;
> +   case PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS:
> +  return 0;
> case PIPE_CAP_VENDOR_ID:
>return 0x10de;
> case PIPE_CAP_DEVICE_ID: {
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c 
> b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
> index 0007a2b957..cd36795e56 100644
> --- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c
> +++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
> @@ -299,6 +299,8 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum 
> pipe_cap param)
>return 32;
> case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
>return 1 << 27;
> +   case PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS:
> +  return 0;
> case PIPE_CAP_VENDOR_ID:
>return 0x10de;
> case PIPE_CAP_DEVICE_ID: {
> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c 
> b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
> index 4701b768be..446e30dcc8 100644
> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
> @@ -272,6 +272,8 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum 
> pipe_cap param)
>return 32;
> case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
>return 1 << 27;
> +   case PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS:
> +  return 0;
> case PIPE_CAP_CONSERVATIVE_RASTER_PRE_SNAP_TRIANGLES:
>return class_3d >= GP100_3D_CLASS;
> case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE:
> diff --git a/src/gallium/drivers/r300/r300_screen.c 
> b/src/gallium/drivers/r300/r300_screen.c
> index 01a95d98dc..d27c2b8f1d 100644
> --- a/src/gallium/drivers/r300/r300_screen.c
> +++ b/src/gallium/drivers/r300/r300_screen.c
> @@ -265,8 +265,12 @@ static int r300_get_param(struct pipe_screen* pscreen, 
> enum pipe_cap param)
>
>  case PIPE_CAP_MAX_GS_INVOCATIONS:
>  return 32;
> -   case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
> +

Re: [Mesa-dev] [PATCH 4/7] gallium: add PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS

2018-08-30 Thread Wladimir J. van der Laan
On Thu, Aug 30, 2018 at 03:40:15PM +0200, Erik Faye-Lund wrote:
> This gets rid of a r600 specific hack in the state-tracker, and prepares
> for other drivers to be able to use hw-atomics.
> 
> While we're at it, clean up some indentation in the various drivers.
> 
> Signed-off-by: Erik Faye-Lund 

Etnaviv part

Reviewed-by: Wladimir J. van der Laan 

> diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c 
> b/src/gallium/drivers/etnaviv/etnaviv_screen.c
> index 9669bd2f60..108b97d35c 100644
> --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c
> +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c
> @@ -289,8 +289,11 @@ etna_screen_get_param(struct pipe_screen *pscreen, enum 
> pipe_cap param)
> case PIPE_CAP_MAX_GS_INVOCATIONS:
>return 32;
>  
> +   /* shader buffer objects */
> case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
>return 1 << 27;
> +   case PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS:
> +  return 0;
>  
> /* Stream output. */
> case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS:
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH 4/7] gallium: add PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS

2018-08-30 Thread Erik Faye-Lund
This gets rid of a r600 specific hack in the state-tracker, and prepares
for other drivers to be able to use hw-atomics.

While we're at it, clean up some indentation in the various drivers.

Signed-off-by: Erik Faye-Lund 
---
 src/gallium/drivers/etnaviv/etnaviv_screen.c | 3 +++
 src/gallium/drivers/freedreno/freedreno_screen.c | 3 +++
 src/gallium/drivers/nouveau/nv30/nv30_screen.c   | 2 ++
 src/gallium/drivers/nouveau/nv50/nv50_screen.c   | 2 ++
 src/gallium/drivers/nouveau/nvc0/nvc0_screen.c   | 2 ++
 src/gallium/drivers/r300/r300_screen.c   | 6 +-
 src/gallium/drivers/r600/r600_pipe.c | 4 
 src/gallium/drivers/radeonsi/si_get.c| 2 ++
 src/gallium/drivers/svga/svga_screen.c   | 2 ++
 src/gallium/drivers/v3d/v3d_screen.c | 8 ++--
 src/gallium/drivers/vc4/vc4_screen.c | 8 ++--
 src/gallium/drivers/virgl/virgl_screen.c | 2 ++
 src/gallium/include/pipe/p_defines.h | 1 +
 src/mesa/state_tracker/st_extensions.c   | 9 +
 14 files changed, 45 insertions(+), 9 deletions(-)

diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c 
b/src/gallium/drivers/etnaviv/etnaviv_screen.c
index 9669bd2f60..108b97d35c 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_screen.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c
@@ -289,8 +289,11 @@ etna_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
case PIPE_CAP_MAX_GS_INVOCATIONS:
   return 32;
 
+   /* shader buffer objects */
case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
   return 1 << 27;
+   case PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS:
+  return 0;
 
/* Stream output. */
case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS:
diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c 
b/src/gallium/drivers/freedreno/freedreno_screen.c
index 489986703c..af44ab698e 100644
--- a/src/gallium/drivers/freedreno/freedreno_screen.c
+++ b/src/gallium/drivers/freedreno/freedreno_screen.c
@@ -376,8 +376,11 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
case PIPE_CAP_MAX_GS_INVOCATIONS:
return 32;
 
+   /* shader buffer objects */
case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
 return 1 << 27;
+   case PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS:
+   return 0;
 
case PIPE_CAP_CONTEXT_PRIORITY_MASK:
return screen->priority_mask;
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c 
b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
index da7ebecd5d..d52d8f3988 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
@@ -245,6 +245,8 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
   return 32;
case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
   return 1 << 27;
+   case PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS:
+  return 0;
case PIPE_CAP_VENDOR_ID:
   return 0x10de;
case PIPE_CAP_DEVICE_ID: {
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c 
b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
index 0007a2b957..cd36795e56 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
@@ -299,6 +299,8 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
   return 32;
case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
   return 1 << 27;
+   case PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS:
+  return 0;
case PIPE_CAP_VENDOR_ID:
   return 0x10de;
case PIPE_CAP_DEVICE_ID: {
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c 
b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
index 4701b768be..446e30dcc8 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
@@ -272,6 +272,8 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
   return 32;
case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
   return 1 << 27;
+   case PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS:
+  return 0;
case PIPE_CAP_CONSERVATIVE_RASTER_PRE_SNAP_TRIANGLES:
   return class_3d >= GP100_3D_CLASS;
case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE:
diff --git a/src/gallium/drivers/r300/r300_screen.c 
b/src/gallium/drivers/r300/r300_screen.c
index 01a95d98dc..d27c2b8f1d 100644
--- a/src/gallium/drivers/r300/r300_screen.c
+++ b/src/gallium/drivers/r300/r300_screen.c
@@ -265,8 +265,12 @@ static int r300_get_param(struct pipe_screen* pscreen, 
enum pipe_cap param)
 
 case PIPE_CAP_MAX_GS_INVOCATIONS:
 return 32;
-   case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
+
+/* shader buffer objects */
+case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
 return 1 << 27;
+case PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS:
+   return 0;
 
 /* SWTCL-only features. */
 case PIPE_CAP_PRIMITIVE_RESTART:
diff --git a/src/gallium/drivers/r600/r600_pipe.c