diff options
author | Marek Olšák <[email protected]> | 2019-09-16 19:37:36 -0400 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2019-10-09 17:12:28 -0400 |
commit | 0a0def7317571d94d68a6b515ffe7ea8a37f6f1c (patch) | |
tree | 51153f402e2d9a27b82c4b2773a7b70bcb2cdd1b /src/gallium/drivers/radeonsi | |
parent | 279da8a2011d0d81449e059a08c912e8004ae291 (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.c | 13 |
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), ""); + } } /** |