spirv: add SPV_KHR_shader_draw_parameters support
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
This commit is contained in:
@@ -48,6 +48,7 @@ struct nir_spirv_supported_extensions {
|
||||
bool float64;
|
||||
bool image_ms_array;
|
||||
bool tessellation;
|
||||
bool draw_parameters;
|
||||
};
|
||||
|
||||
nir_function *spirv_to_nir(const uint32_t *words, size_t word_count,
|
||||
|
@@ -2683,6 +2683,10 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode,
|
||||
spv_check_supported(tessellation, cap);
|
||||
break;
|
||||
|
||||
case SpvCapabilityDrawParameters:
|
||||
spv_check_supported(draw_parameters, cap);
|
||||
break;
|
||||
|
||||
default:
|
||||
unreachable("Unhandled capability");
|
||||
}
|
||||
|
@@ -1010,6 +1010,18 @@ vtn_get_builtin_location(struct vtn_builder *b,
|
||||
*location = SYSTEM_VALUE_GLOBAL_INVOCATION_ID;
|
||||
set_mode_system_value(mode);
|
||||
break;
|
||||
case SpvBuiltInBaseVertex:
|
||||
*location = SYSTEM_VALUE_BASE_VERTEX;
|
||||
set_mode_system_value(mode);
|
||||
break;
|
||||
case SpvBuiltInBaseInstance:
|
||||
*location = SYSTEM_VALUE_BASE_INSTANCE;
|
||||
set_mode_system_value(mode);
|
||||
break;
|
||||
case SpvBuiltInDrawIndex:
|
||||
*location = SYSTEM_VALUE_DRAW_ID;
|
||||
set_mode_system_value(mode);
|
||||
break;
|
||||
case SpvBuiltInHelperInvocation:
|
||||
default:
|
||||
unreachable("unsupported builtin");
|
||||
|
Reference in New Issue
Block a user