summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2012-04-23 12:08:32 -0400
committerTom Stellard <thomas.stellard@amd.com>2012-05-17 14:50:55 -0400
commit78038ec3e603c4c2ad5417e3f92b9aee8b8d0860 (patch)
treee4b29a2b2addedab9f78f2af83031826d2ac0ed9
parentd1b94b8d4a8177c8ed2acf4b4f3af071d3df883f (diff)
r600g: Handle PIPE_SHADER_CAP_PREFERRED_IR
-rw-r--r--src/gallium/drivers/r600/r600_pipe.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
index cb13ca767c9..06d7a6e4beb 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -491,6 +491,7 @@ static int r600_get_shader_param(struct pipe_screen* pscreen, unsigned shader, e
{
case PIPE_SHADER_FRAGMENT:
case PIPE_SHADER_VERTEX:
+ case PIPE_SHADER_COMPUTE:
break;
case PIPE_SHADER_GEOMETRY:
/* XXX: support and enable geometry programs */
@@ -538,8 +539,12 @@ static int r600_get_shader_param(struct pipe_screen* pscreen, unsigned shader, e
return rscreen->glsl_feature_level >= 130;
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
return 16;
- case PIPE_SHADER_CAP_PREFERRED_IR:
- return PIPE_SHADER_IR_TGSI;
+ case PIPE_SHADER_CAP_PREFERRED_IR:
+ if (shader == PIPE_SHADER_COMPUTE) {
+ return PIPE_SHADER_IR_LLVM_R600;
+ } else {
+ return PIPE_SHADER_IR_TGSI;
+ }
}
return 0;
}