llvmpipe: add debug option to enable OpenCL support.
authorDave Airlie <airlied@redhat.com>
Tue, 10 Dec 2019 04:55:43 +0000 (14:55 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 27 Dec 2019 03:26:33 +0000 (13:26 +1000)
LP_DEBUG=cl will enable CL support for now.

Acked-by: Roland Scheidegger <sroland@vmware.com>
src/gallium/drivers/llvmpipe/lp_debug.h
src/gallium/drivers/llvmpipe/lp_screen.c

index 972831a4f0e0d62fda9aeb0303946f8f7d24f33d..4e17f41cd9d4d2a3688433b3e12126e26361c9db 100644 (file)
@@ -46,6 +46,7 @@
 #define DEBUG_FS            0x8000
 #define DEBUG_CS            0x10000
 #define DEBUG_TGSI_IR       0x20000
+#define DEBUG_CL            0x40000
 
 /* Performance flags.  These are active even on release builds.
  */
index 2a665c10fd3c54df49754f15d317b8a74404157e..8258614aebeacf9ff6106845416e86beceba4482 100644 (file)
@@ -74,6 +74,7 @@ static const struct debug_named_value lp_debug_flags[] = {
    { "fs", DEBUG_FS, NULL },
    { "cs", DEBUG_CS, NULL },
    { "tgsi_ir", DEBUG_TGSI_IR, NULL },
+   { "cl", DEBUG_CL, NULL },
    DEBUG_NAMED_VALUE_END
 };
 #endif
@@ -411,8 +412,10 @@ llvmpipe_get_shader_param(struct pipe_screen *screen,
 {
    switch(shader)
    {
-   case PIPE_SHADER_FRAGMENT:
    case PIPE_SHADER_COMPUTE:
+      if ((LP_DEBUG & DEBUG_CL) && param == PIPE_SHADER_CAP_SUPPORTED_IRS)
+         return (1 << PIPE_SHADER_IR_TGSI) | (1 << PIPE_SHADER_IR_NIR) | (1 << PIPE_SHADER_IR_NIR_SERIALIZED);
+   case PIPE_SHADER_FRAGMENT:
       if (param == PIPE_SHADER_CAP_PREFERRED_IR) {
          struct llvmpipe_screen *lscreen = llvmpipe_screen(screen);
          if (lscreen->use_tgsi)
@@ -420,7 +423,6 @@ llvmpipe_get_shader_param(struct pipe_screen *screen,
          else
             return PIPE_SHADER_IR_NIR;
       }
-
       switch (param) {
       default:
          return gallivm_get_shader_param(param);