mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader/d3dbc: Emit fixme for HLSL_RESOURCE_SAMPLE_LOD.
Currently, HLSL_RESOURCE_SAMPLE_LOD is not implemented for d3dbc, but we are incorrectly writting a texld instruction to handle it. This causes SM1 tests with the vulkan backend (in following patches) to fail if VKD3D_SHADER_CONFIG="force_validation" is enabled. For now a fixme is emited in these cases.
This commit is contained in:
parent
671f4ec2b2
commit
7e75ac63a1
Notes:
Alexandre Julliard
2024-01-24 22:53:52 +01:00
Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/514
@ -2345,8 +2345,6 @@ static void write_sm1_resource_load(struct hlsl_ctx *ctx, struct vkd3d_bytecode_
|
|||||||
|
|
||||||
sm1_instr = (struct sm1_instruction)
|
sm1_instr = (struct sm1_instruction)
|
||||||
{
|
{
|
||||||
.opcode = D3DSIO_TEX,
|
|
||||||
|
|
||||||
.dst.type = D3DSPR_TEMP,
|
.dst.type = D3DSPR_TEMP,
|
||||||
.dst.reg = instr->reg.id,
|
.dst.reg = instr->reg.id,
|
||||||
.dst.writemask = instr->reg.writemask,
|
.dst.writemask = instr->reg.writemask,
|
||||||
@ -2362,8 +2360,22 @@ static void write_sm1_resource_load(struct hlsl_ctx *ctx, struct vkd3d_bytecode_
|
|||||||
|
|
||||||
.src_count = 2,
|
.src_count = 2,
|
||||||
};
|
};
|
||||||
if (load->load_type == HLSL_RESOURCE_SAMPLE_PROJ)
|
|
||||||
|
switch (load->load_type)
|
||||||
|
{
|
||||||
|
case HLSL_RESOURCE_SAMPLE:
|
||||||
|
sm1_instr.opcode = D3DSIO_TEX;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case HLSL_RESOURCE_SAMPLE_PROJ:
|
||||||
|
sm1_instr.opcode = D3DSIO_TEX;
|
||||||
sm1_instr.opcode |= VKD3DSI_TEXLD_PROJECT << VKD3D_SM1_INSTRUCTION_FLAGS_SHIFT;
|
sm1_instr.opcode |= VKD3DSI_TEXLD_PROJECT << VKD3D_SM1_INSTRUCTION_FLAGS_SHIFT;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
hlsl_fixme(ctx, &instr->loc, "Resource load type %u\n", load->load_type);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
assert(instr->reg.allocated);
|
assert(instr->reg.allocated);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user