diff --git a/libs/vkd3d-shader/d3dbc.c b/libs/vkd3d-shader/d3dbc.c index 4c301789..2290385d 100644 --- a/libs/vkd3d-shader/d3dbc.c +++ b/libs/vkd3d-shader/d3dbc.c @@ -2602,6 +2602,11 @@ static void write_sm1_resource_load(struct hlsl_ctx *ctx, struct vkd3d_bytecode_ sm1_instr.opcode |= VKD3DSI_TEXLD_PROJECT << VKD3D_SM1_INSTRUCTION_FLAGS_SHIFT; break; + case HLSL_RESOURCE_SAMPLE_LOD_BIAS: + sm1_instr.opcode = D3DSIO_TEX; + sm1_instr.opcode |= VKD3DSI_TEXLD_BIAS << VKD3D_SM1_INSTRUCTION_FLAGS_SHIFT; + break; + default: hlsl_fixme(ctx, &instr->loc, "Resource load type %u.", load->load_type); return; diff --git a/tests/hlsl/sample-bias.shader_test b/tests/hlsl/sample-bias.shader_test index 8385a85b..debe2415 100644 --- a/tests/hlsl/sample-bias.shader_test +++ b/tests/hlsl/sample-bias.shader_test @@ -47,7 +47,7 @@ probe all rgba (0.0, 0.0, 10.0, 0.0) shader model >= 3.0 options: backcompat -[pixel shader todo(sm<4) fail(sm>=6)] +[pixel shader fail(sm>=6)] sampler s; float bias; @@ -60,13 +60,13 @@ float4 main(float2 coord : texcoord) : sv_target [test] uniform 0 float4 6.5 0.0 0.0 0.0 -todo(sm<4 | glsl) draw quad +todo(glsl) draw quad probe all rgba (10.0, 0.0, 10.0, 0.0) uniform 0 float4 7.5 0.0 0.0 0.0 -todo(sm<4 | glsl) draw quad -probe all rgba (4.0, 0.0, 10.0, 0.0) +todo(glsl) draw quad +todo(sm<4) probe all rgba (4.0, 0.0, 10.0, 0.0) uniform 0 float4 8.5 0.0 0.0 0.0 -todo(sm<4 | glsl) draw quad -probe all rgba (0.0, 0.0, 10.0, 0.0) +todo(glsl) draw quad +todo(sm<4) probe all rgba (0.0, 0.0, 10.0, 0.0)