Re: [Mesa-dev] [PATCH v2] st/mesa: do not init limits when compute shaders are not supported

2016-02-15 Thread Tobias Klausmann


On 15.02.2016 22:44, Samuel Pitoiset wrote:

When the number of uniform blocks is less than 12,
ARB_uniform_buffer_object can't be enabled and the maximum GL version
is not even 3.1...

This fixes a regression introduced in 7c79c1e (st/mesa: add compute
shader state) if the maximum number of uniform blocks allowed for
compute shaders is less than 12. This happens on Kepler but this might
also affect other Gallium drivers.

Signed-off-by: Samuel Pitoiset 
Reported-by: Tobias Klausmann 
Tested-by: Tobias Klausmann 
---
  src/mesa/state_tracker/st_extensions.c | 8 
  1 file changed, 8 insertions(+)

diff --git a/src/mesa/state_tracker/st_extensions.c 
b/src/mesa/state_tracker/st_extensions.c
index bdfbded..2f5d3f7 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -75,6 +75,7 @@ static int _clamp(int a, int min, int max)
  void st_init_limits(struct pipe_screen *screen,
  struct gl_constants *c, struct gl_extensions *extensions)
  {
+   int supported_irs;
 unsigned sh;
 boolean can_ubo = TRUE;
  
@@ -177,6 +178,13 @@ void st_init_limits(struct pipe_screen *screen,

case PIPE_SHADER_COMPUTE:
   pc = >Program[MESA_SHADER_COMPUTE];
   options = >ShaderCompilerOptions[MESA_SHADER_COMPUTE];
+
+ if (!screen->get_param(screen, PIPE_CAP_COMPUTE))
+continue;
+ supported_irs =
+screen->get_shader_param(screen, sh, 
PIPE_SHADER_CAP_SUPPORTED_IRS);
+ if (!(supported_irs & (1 << PIPE_SHADER_IR_TGSI)))
+continue;
   break;
default:
   assert(0);


Reviewed-by: Tobias Klausmann

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


Re: [Mesa-dev] [PATCH v2] st/mesa: do not init limits when compute shaders are not supported

2016-02-15 Thread Ilia Mirkin
On Mon, Feb 15, 2016 at 4:44 PM, Samuel Pitoiset
 wrote:
> When the number of uniform blocks is less than 12,
> ARB_uniform_buffer_object can't be enabled and the maximum GL version
> is not even 3.1...
>
> This fixes a regression introduced in 7c79c1e (st/mesa: add compute
> shader state) if the maximum number of uniform blocks allowed for
> compute shaders is less than 12. This happens on Kepler but this might
> also affect other Gallium drivers.
>
> Signed-off-by: Samuel Pitoiset 
> Reported-by: Tobias Klausmann 
> Tested-by: Tobias Klausmann 

Reviewed-by: Ilia Mirkin 

> ---
>  src/mesa/state_tracker/st_extensions.c | 8 
>  1 file changed, 8 insertions(+)
>
> diff --git a/src/mesa/state_tracker/st_extensions.c 
> b/src/mesa/state_tracker/st_extensions.c
> index bdfbded..2f5d3f7 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -75,6 +75,7 @@ static int _clamp(int a, int min, int max)
>  void st_init_limits(struct pipe_screen *screen,
>  struct gl_constants *c, struct gl_extensions *extensions)
>  {
> +   int supported_irs;
> unsigned sh;
> boolean can_ubo = TRUE;
>
> @@ -177,6 +178,13 @@ void st_init_limits(struct pipe_screen *screen,
>case PIPE_SHADER_COMPUTE:
>   pc = >Program[MESA_SHADER_COMPUTE];
>   options = >ShaderCompilerOptions[MESA_SHADER_COMPUTE];
> +
> + if (!screen->get_param(screen, PIPE_CAP_COMPUTE))
> +continue;
> + supported_irs =
> +screen->get_shader_param(screen, sh, 
> PIPE_SHADER_CAP_SUPPORTED_IRS);
> + if (!(supported_irs & (1 << PIPE_SHADER_IR_TGSI)))
> +continue;
>   break;
>default:
>   assert(0);
> --
> 2.6.4
>
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH v2] st/mesa: do not init limits when compute shaders are not supported

2016-02-15 Thread Samuel Pitoiset
When the number of uniform blocks is less than 12,
ARB_uniform_buffer_object can't be enabled and the maximum GL version
is not even 3.1...

This fixes a regression introduced in 7c79c1e (st/mesa: add compute
shader state) if the maximum number of uniform blocks allowed for
compute shaders is less than 12. This happens on Kepler but this might
also affect other Gallium drivers.

Signed-off-by: Samuel Pitoiset 
Reported-by: Tobias Klausmann 
Tested-by: Tobias Klausmann 
---
 src/mesa/state_tracker/st_extensions.c | 8 
 1 file changed, 8 insertions(+)

diff --git a/src/mesa/state_tracker/st_extensions.c 
b/src/mesa/state_tracker/st_extensions.c
index bdfbded..2f5d3f7 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -75,6 +75,7 @@ static int _clamp(int a, int min, int max)
 void st_init_limits(struct pipe_screen *screen,
 struct gl_constants *c, struct gl_extensions *extensions)
 {
+   int supported_irs;
unsigned sh;
boolean can_ubo = TRUE;
 
@@ -177,6 +178,13 @@ void st_init_limits(struct pipe_screen *screen,
   case PIPE_SHADER_COMPUTE:
  pc = >Program[MESA_SHADER_COMPUTE];
  options = >ShaderCompilerOptions[MESA_SHADER_COMPUTE];
+
+ if (!screen->get_param(screen, PIPE_CAP_COMPUTE))
+continue;
+ supported_irs =
+screen->get_shader_param(screen, sh, 
PIPE_SHADER_CAP_SUPPORTED_IRS);
+ if (!(supported_irs & (1 << PIPE_SHADER_IR_TGSI)))
+continue;
  break;
   default:
  assert(0);
-- 
2.6.4

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