vkd3d-shader/hlsl: Parse the Append() method for stream outputs.

This commit is contained in:
Shaun Ren
2025-04-11 11:36:44 -04:00
committed by Henri Verbeet
parent 9b65cc8895
commit 9525eb2f0c
Notes: Henri Verbeet 2025-04-23 18:18:33 +02:00
Approved-by: Elizabeth Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1458
4 changed files with 97 additions and 30 deletions

View File

@@ -5359,8 +5359,10 @@ static void compute_liveness_recurse(struct hlsl_block *block, unsigned int loop
var = store->resource.var;
var->last_read = max(var->last_read, last_read);
deref_mark_last_read(&store->resource, last_read);
store->coords.node->last_read = last_read;
store->value.node->last_read = last_read;
if (store->coords.node)
store->coords.node->last_read = last_read;
if (store->value.node)
store->value.node->last_read = last_read;
break;
}
case HLSL_IR_SWIZZLE:
@@ -10632,6 +10634,12 @@ static bool sm4_generate_vsir_instr_resource_store(struct hlsl_ctx *ctx,
struct vkd3d_shader_instruction *ins;
unsigned int writemask;
if (store->store_type != HLSL_RESOURCE_STORE)
{
hlsl_fixme(ctx, &instr->loc, "Stream output operations.");
return false;
}
if (!store->resource.var->is_uniform)
{
hlsl_fixme(ctx, &store->node.loc, "Store to non-uniform resource variable.");