radv: ensure export arguments are always float
So that the signature is correct and consistent, the inputs to a export
intrinsic should always be 32-bit floats.
This and the previous commit fixes a large amount crashes from
dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.input_output_int_*
tests
Fixes: b722b29f10
('radv: add support for 16bit input/output')
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
This commit is contained in:
@@ -2571,12 +2571,8 @@ si_llvm_init_export_args(struct radv_shader_context *ctx,
|
|||||||
} else
|
} else
|
||||||
memcpy(&args->out[0], values, sizeof(values[0]) * 4);
|
memcpy(&args->out[0], values, sizeof(values[0]) * 4);
|
||||||
|
|
||||||
for (unsigned i = 0; i < 4; ++i) {
|
for (unsigned i = 0; i < 4; ++i)
|
||||||
if (!(args->enabled_channels & (1 << i)))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
args->out[i] = ac_to_float(&ctx->ac, args->out[i]);
|
args->out[i] = ac_to_float(&ctx->ac, args->out[i]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Reference in New Issue
Block a user