mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader: Implement tex*() functions variants with gradient arguments.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
committed by
Henri Verbeet
parent
4cd2dd50f9
commit
4ff288bd32
Notes:
Henri Verbeet
2024-07-08 18:54:32 +02:00
Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/917
@@ -1899,13 +1899,42 @@ static enum vkd3d_result vsir_program_normalise_combined_samplers(struct vsir_pr
|
||||
ins->src_count = 3;
|
||||
break;
|
||||
|
||||
case VKD3DSIH_TEXLDD:
|
||||
if (!(srcs = shader_src_param_allocator_get(&program->instructions.src_params, 5)))
|
||||
return VKD3D_ERROR_OUT_OF_MEMORY;
|
||||
memset(srcs, 0, sizeof(*srcs) * 5);
|
||||
|
||||
ins->opcode = VKD3DSIH_SAMPLE_GRAD;
|
||||
|
||||
srcs[0] = ins->src[0];
|
||||
|
||||
srcs[1].reg.type = VKD3DSPR_RESOURCE;
|
||||
srcs[1].reg.idx[0] = ins->src[1].reg.idx[0];
|
||||
srcs[1].reg.idx[1] = ins->src[1].reg.idx[0];
|
||||
srcs[1].reg.idx_count = 2;
|
||||
srcs[1].reg.data_type = VKD3D_DATA_RESOURCE;
|
||||
srcs[1].reg.dimension = VSIR_DIMENSION_VEC4;
|
||||
srcs[1].swizzle = VKD3D_SHADER_NO_SWIZZLE;
|
||||
|
||||
srcs[2].reg.type = VKD3DSPR_SAMPLER;
|
||||
srcs[2].reg.idx[0] = ins->src[1].reg.idx[0];
|
||||
srcs[2].reg.idx[1] = ins->src[1].reg.idx[0];
|
||||
srcs[2].reg.idx_count = 2;
|
||||
srcs[2].reg.data_type = VKD3D_DATA_SAMPLER;
|
||||
|
||||
srcs[3] = ins->src[2];
|
||||
srcs[4] = ins->src[3];
|
||||
|
||||
ins->src = srcs;
|
||||
ins->src_count = 5;
|
||||
break;
|
||||
|
||||
case VKD3DSIH_TEXBEM:
|
||||
case VKD3DSIH_TEXBEML:
|
||||
case VKD3DSIH_TEXCOORD:
|
||||
case VKD3DSIH_TEXDEPTH:
|
||||
case VKD3DSIH_TEXDP3:
|
||||
case VKD3DSIH_TEXDP3TEX:
|
||||
case VKD3DSIH_TEXLDD:
|
||||
case VKD3DSIH_TEXLDL:
|
||||
case VKD3DSIH_TEXM3x2PAD:
|
||||
case VKD3DSIH_TEXM3x2TEX:
|
||||
|
||||
Reference in New Issue
Block a user