Re: [Mesa-dev] [PATCH 4/7] gallium: add PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS
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
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
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