mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-12-15 08:03:30 -08:00
vkd3d-shader/hlsl: Store ROV feature requirement in the vsir_program.
This commit is contained in:
committed by
Henri Verbeet
parent
d9c4a257c2
commit
d3108de72a
Notes:
Henri Verbeet
2024-12-09 16:18:05 +01:00
Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1287
@@ -1650,6 +1650,30 @@ int d3dbc_compile(struct vsir_program *program, uint64_t config_flags,
|
||||
const struct vkd3d_shader_compile_info *compile_info, const struct vkd3d_shader_code *ctab,
|
||||
struct vkd3d_shader_code *out, struct vkd3d_shader_message_context *message_context);
|
||||
|
||||
struct extern_resource
|
||||
{
|
||||
/* "var" is only not NULL if this resource is a whole variable, so it may
|
||||
* be responsible for more than one component. */
|
||||
const struct hlsl_ir_var *var;
|
||||
const struct hlsl_buffer *buffer;
|
||||
|
||||
char *name;
|
||||
bool is_user_packed;
|
||||
|
||||
/* The data type of a single component of the resource. This might be
|
||||
* different from the data type of the resource itself in 4.0 profiles,
|
||||
* where an array (or multi-dimensional array) is handled as a single
|
||||
* resource, unlike in 5.0. */
|
||||
struct hlsl_type *component_type;
|
||||
|
||||
enum hlsl_regset regset;
|
||||
unsigned int id, space, index, bind_count;
|
||||
|
||||
struct vkd3d_shader_location loc;
|
||||
};
|
||||
|
||||
struct extern_resource *sm4_get_extern_resources(struct hlsl_ctx *ctx, unsigned int *count);
|
||||
void sm4_free_extern_resources(struct extern_resource *extern_resources, unsigned int count);
|
||||
int tpf_compile(struct vsir_program *program, uint64_t config_flags,
|
||||
struct vkd3d_shader_code *out, struct vkd3d_shader_message_context *message_context,
|
||||
struct hlsl_ctx *ctx, struct hlsl_ir_function_decl *entry_func);
|
||||
|
||||
Reference in New Issue
Block a user