Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit d92d2af

Browse files
doitsujinHansKristian-Work
authored andcommittedMar 10, 2020
vkd3d-shader: Parse NonUniform operand modifier.
This modifier can be applied to both destination and source operands, so for the sake of simplicity and to avoid having to pass down modifier information explicitly, just store this state with the register. Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
1 parent 1c9b07e commit d92d2af

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed
 

‎libs/vkd3d-shader/dxbc.c

+5
Original file line numberDiff line numberDiff line change
@@ -1489,6 +1489,7 @@ static bool shader_sm4_read_param(struct vkd3d_sm4_data *priv, const DWORD **ptr
14891489
{
14901490
param->type = register_type_table[register_type];
14911491
}
1492+
param->modifier = VKD3DSPRM_NONE;
14921493
param->data_type = data_type;
14931494

14941495
if (token & VKD3D_SM4_REGISTER_MODIFIER)
@@ -1516,6 +1517,10 @@ static bool shader_sm4_read_param(struct vkd3d_sm4_data *priv, const DWORD **ptr
15161517
*modifier = VKD3DSPSM_ABSNEG;
15171518
break;
15181519

1520+
case 0x20001:
1521+
param->modifier = VKD3DSPRM_NONUNIFORM;
1522+
break;
1523+
15191524
default:
15201525
FIXME("Skipping modifier 0x%08x.\n", m);
15211526
*modifier = VKD3DSPSM_NONE;

‎libs/vkd3d-shader/vkd3d_shader_private.h

+7
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,12 @@ enum vkd3d_immconst_type
395395
VKD3D_IMMCONST_VEC4,
396396
};
397397

398+
enum vkd3d_shader_register_modifier
399+
{
400+
VKD3DSPRM_NONE = 0,
401+
VKD3DSPRM_NONUNIFORM = 1,
402+
};
403+
398404
enum vkd3d_shader_src_modifier
399405
{
400406
VKD3DSPSM_NONE = 0,
@@ -557,6 +563,7 @@ struct vkd3d_shader_register_index
557563
struct vkd3d_shader_register
558564
{
559565
enum vkd3d_shader_register_type type;
566+
enum vkd3d_shader_register_modifier modifier;
560567
enum vkd3d_data_type data_type;
561568
struct vkd3d_shader_register_index idx[3];
562569
enum vkd3d_immconst_type immconst_type;

0 commit comments

Comments
 (0)
Please sign in to comment.