radv: Allow interpolation on non-float types.
In particular structs containing floats and 16-bit floating point types. Fixes:62024fa775
"radv: enable VK_KHR_16bit_storage extension / 16bit storage features" Fixes:da29594636
"spirv: Only split blocks" Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109735 Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
This commit is contained in:
@@ -2297,7 +2297,6 @@ handle_fs_input_decl(struct radv_shader_context *ctx,
|
|||||||
|
|
||||||
mask = ((1ull << attrib_count) - 1) << variable->data.location;
|
mask = ((1ull << attrib_count) - 1) << variable->data.location;
|
||||||
|
|
||||||
if (glsl_get_base_type(glsl_without_array(variable->type)) == GLSL_TYPE_FLOAT) {
|
|
||||||
unsigned interp_type;
|
unsigned interp_type;
|
||||||
if (variable->data.sample)
|
if (variable->data.sample)
|
||||||
interp_type = INTERP_SAMPLE;
|
interp_type = INTERP_SAMPLE;
|
||||||
@@ -2307,7 +2306,7 @@ handle_fs_input_decl(struct radv_shader_context *ctx,
|
|||||||
interp_type = INTERP_CENTER;
|
interp_type = INTERP_CENTER;
|
||||||
|
|
||||||
interp = lookup_interp_param(&ctx->abi, variable->data.interpolation, interp_type);
|
interp = lookup_interp_param(&ctx->abi, variable->data.interpolation, interp_type);
|
||||||
}
|
|
||||||
if (interp == NULL)
|
if (interp == NULL)
|
||||||
interp = LLVMGetUndef(ctx->ac.i32);
|
interp = LLVMGetUndef(ctx->ac.i32);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user