mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
vkd3d-shader/d3dbc: Implement HLSL_OP2_LOGIC_AND for SM1.
This commit is contained in:
parent
777bf772bf
commit
9a222d2be1
Notes:
Alexandre Julliard
2024-03-27 23:07:31 +01:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Zebediah Figura (@zfigura) Approved-by: Francisco Casas (@fcasas) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/724
@ -2333,6 +2333,10 @@ static void write_sm1_expr(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffer *b
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case HLSL_OP2_LOGIC_AND:
|
||||||
|
write_sm1_binary_op(ctx, buffer, D3DSIO_MIN, &instr->reg, &arg1->reg, &arg2->reg);
|
||||||
|
break;
|
||||||
|
|
||||||
case HLSL_OP2_LOGIC_OR:
|
case HLSL_OP2_LOGIC_OR:
|
||||||
write_sm1_binary_op(ctx, buffer, D3DSIO_MAX, &instr->reg, &arg1->reg, &arg2->reg);
|
write_sm1_binary_op(ctx, buffer, D3DSIO_MAX, &instr->reg, &arg1->reg, &arg2->reg);
|
||||||
break;
|
break;
|
||||||
|
@ -3622,6 +3622,7 @@ static bool lower_nonfloat_exprs(struct hlsl_ctx *ctx, struct hlsl_ir_node *inst
|
|||||||
case HLSL_OP1_NEG:
|
case HLSL_OP1_NEG:
|
||||||
case HLSL_OP2_ADD:
|
case HLSL_OP2_ADD:
|
||||||
case HLSL_OP2_DIV:
|
case HLSL_OP2_DIV:
|
||||||
|
case HLSL_OP2_LOGIC_AND:
|
||||||
case HLSL_OP2_LOGIC_OR:
|
case HLSL_OP2_LOGIC_OR:
|
||||||
case HLSL_OP2_MAX:
|
case HLSL_OP2_MAX:
|
||||||
case HLSL_OP2_MIN:
|
case HLSL_OP2_MIN:
|
||||||
|
@ -158,7 +158,7 @@ todo(glsl) draw quad
|
|||||||
probe all rgba (0.0, 1.0, 1.0, 1.0)
|
probe all rgba (0.0, 1.0, 1.0, 1.0)
|
||||||
|
|
||||||
|
|
||||||
[pixel shader todo(sm<4)]
|
[pixel shader]
|
||||||
int a, b;
|
int a, b;
|
||||||
|
|
||||||
float4 main() : SV_TARGET
|
float4 main() : SV_TARGET
|
||||||
@ -171,11 +171,11 @@ if(sm<4) uniform 0 float 5
|
|||||||
if(sm<4) uniform 4 float 0
|
if(sm<4) uniform 4 float 0
|
||||||
if(sm>=4) uniform 0 int 5
|
if(sm>=4) uniform 0 int 5
|
||||||
if(sm>=4) uniform 1 int 0
|
if(sm>=4) uniform 1 int 0
|
||||||
todo(sm<4 | glsl) draw quad
|
todo(glsl) draw quad
|
||||||
probe all rgba (1.0, 1.0, 0.0, 1.0)
|
probe all rgba (1.0, 1.0, 0.0, 1.0)
|
||||||
if(sm<4) uniform 0 float -1
|
if(sm<4) uniform 0 float -1
|
||||||
if(sm<4) uniform 4 float 3
|
if(sm<4) uniform 4 float 3
|
||||||
if(sm>=4) uniform 0 int -1
|
if(sm>=4) uniform 0 int -1
|
||||||
if(sm>=4) uniform 1 int 3
|
if(sm>=4) uniform 1 int 3
|
||||||
todo(sm<4 | glsl) draw quad
|
todo(glsl) draw quad
|
||||||
probe all rgba (0.0, 1.0, 0.0, 0.0)
|
probe all rgba (0.0, 1.0, 0.0, 0.0)
|
||||||
|
@ -58,7 +58,7 @@ todo(glsl) draw quad
|
|||||||
probe all rgba (1.0, 0.0, 0.0, 1.0)
|
probe all rgba (1.0, 0.0, 0.0, 1.0)
|
||||||
|
|
||||||
|
|
||||||
[vertex shader todo(sm<4)]
|
[vertex shader]
|
||||||
int a, b;
|
int a, b;
|
||||||
|
|
||||||
void main(out float4 res : COLOR1, in float4 pos : position, out float4 out_pos : sv_position)
|
void main(out float4 res : COLOR1, in float4 pos : position, out float4 out_pos : sv_position)
|
||||||
@ -75,12 +75,12 @@ void main(out float4 res : COLOR1, in float4 pos : position, out float4 out_pos
|
|||||||
if(sm<4) uniform 0 float 0
|
if(sm<4) uniform 0 float 0
|
||||||
if(sm<4) uniform 4 float 2
|
if(sm<4) uniform 4 float 2
|
||||||
if(sm>=4) uniform 0 int4 0 2 0 0
|
if(sm>=4) uniform 0 int4 0 2 0 0
|
||||||
todo(sm<4 | glsl) draw quad
|
todo(glsl) draw quad
|
||||||
probe all rgba (0.0, 1.0, 0.0, 1.0)
|
probe all rgba (0.0, 1.0, 0.0, 1.0)
|
||||||
if(sm<4) uniform 0 float -2
|
if(sm<4) uniform 0 float -2
|
||||||
if(sm<4) uniform 4 float 8
|
if(sm<4) uniform 4 float 8
|
||||||
if(sm>=4) uniform 0 int4 -2 8 0 0
|
if(sm>=4) uniform 0 int4 -2 8 0 0
|
||||||
todo(sm<4 | glsl) draw quad
|
todo(glsl) draw quad
|
||||||
probe all rgba (1.0, 1.0, 1.0, 1.0)
|
probe all rgba (1.0, 1.0, 1.0, 1.0)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user