vkd3d-shader/hlsl: Support all() intrinsic.
2 unresolved threads
2 unresolved threads
Merge request reports
Activity
2382 if (!(one = hlsl_new_float_constant(ctx, 1.0f, loc))) 2383 return false; 2384 list_add_tail(params->instrs, &one->node.entry); 2385 2386 if (!(zero = hlsl_new_float_constant(ctx, 0.0f, loc))) 2387 return false; 2388 list_add_tail(params->instrs, &zero->node.entry); 2389 2390 mul = &one->node; 2391 2392 for (i = 0; i < arg_type->dimx; ++i) 2393 { 2394 for (j = 0; j < arg_type->dimy; ++j) 2395 { 2396 if (!(load = add_load_component(ctx, params->instrs, arg, j * arg->data_type->dimx + i, loc))) 2397 return false; changed this line in version 3 of the diff
At first, I was suspicious of implementing
all()
using multiplication, but that seems to be what the native compiler does...float4 main() : sv_target { float4 a = {1, 1, 1, 0}; float4 b = {1e20, 1e20, 1e20, 0}; return float4(all(a), all(b), -1, -1); }
this actually returns
(0, 1, -1, -1)
both in native and using this patch, so it is correct in giving the incorrect result.added 3 commits
-
43037823...7c3dadce - 2 commits from branch
wine:master
- 8553705e - vkd3d-shader/hlsl: Support all() intrinsic.
-
43037823...7c3dadce - 2 commits from branch
added 3 commits
-
8553705e...2142d31f - 2 commits from branch
wine:master
- e5b40092 - vkd3d-shader/hlsl: Support all() intrinsic.
-
8553705e...2142d31f - 2 commits from branch
Please register or sign in to reply