summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2019-09-16 19:37:36 -0400
committerMarek Olšák <[email protected]>2019-10-09 17:12:28 -0400
commit0a0def7317571d94d68a6b515ffe7ea8a37f6f1c (patch)
tree51153f402e2d9a27b82c4b2773a7b70bcb2cdd1b /src/gallium/drivers/radeonsi
parent279da8a2011d0d81449e059a08c912e8004ae291 (diff)
radeonsi: fix GLSL imageSamples()
We haven't supported MSAA images, so it doesn't matter much. Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi')
-rw-r--r--src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c
index 709ada50ea0..a0f66d38c7c 100644
--- a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c
+++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c
@@ -1015,6 +1015,19 @@ static void resq_emit(
emit_data->output[emit_data->chan] =
fix_resinfo(ctx, target, ac_build_image_opcode(&ctx->ac, &args));
+
+ if (inst->Instruction.Opcode == TGSI_OPCODE_RESQ &&
+ (target == TGSI_TEXTURE_2D_MSAA ||
+ target == TGSI_TEXTURE_2D_ARRAY_MSAA)) {
+ LLVMValueRef samples =
+ ac_build_image_get_sample_count(&ctx->ac, args.resource);
+
+ emit_data->output[emit_data->chan] =
+ LLVMBuildInsertElement(ctx->ac.builder,
+ emit_data->output[emit_data->chan],
+ samples,
+ LLVMConstInt(ctx->i32, 3, 0), "");
+ }
}
/**