vkd3d-shader/fx: Handle SetRasterizerState().

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
Nikolay Sivov 2024-08-05 17:33:21 +02:00 committed by Henri Verbeet
parent 784e69a366
commit 2cbad81b55
Notes: Henri Verbeet 2024-08-06 16:59:31 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/985
2 changed files with 7 additions and 0 deletions

View File

@ -1480,6 +1480,7 @@ enum state_property_component_type
FX_UINT,
FX_UINT8,
FX_DS_STATE,
FX_RAST_STATE,
};
static inline bool is_object_fx_type(enum state_property_component_type type)
@ -1487,6 +1488,7 @@ static inline bool is_object_fx_type(enum state_property_component_type type)
switch (type)
{
case FX_DS_STATE:
case FX_RAST_STATE:
return true;
default:
return false;
@ -1499,6 +1501,8 @@ static inline enum hlsl_type_class hlsl_type_class_from_fx_type(enum state_prope
{
case FX_DS_STATE:
return HLSL_CLASS_DEPTH_STENCIL_STATE;
case FX_RAST_STATE:
return HLSL_CLASS_RASTERIZER_STATE;
default:
vkd3d_unreachable();
}
@ -1629,6 +1633,7 @@ static void resolve_fx_4_state_block_values(struct hlsl_ir_var *var, struct hlsl
}
states[] =
{
{ "RasterizerState", HLSL_CLASS_PASS, HLSL_CLASS_SCALAR, FX_RAST_STATE, 1, 0 },
{ "DepthStencilState", HLSL_CLASS_PASS, HLSL_CLASS_SCALAR, FX_DS_STATE, 1, 1 },
{ "DS_StencilRef", HLSL_CLASS_PASS, HLSL_CLASS_SCALAR, FX_UINT, 1, 9 },

View File

@ -4,11 +4,13 @@ shader model < 6.0
[effect]
DepthStencilState ds;
RasterizerState rs;
technique11
{
pass
{
SetDepthStencilState(ds, 123);
SetRasterizerState(rs);
}
}