mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
tests/hlsl: Attempt to deduce the data type of unspecified type texture data.
Try parsing first as integer, and if the parse stops at a decimal separator, parse as float.
This commit is contained in:
parent
7b21183f45
commit
cc9f4ac587
Notes:
Henri Verbeet
2025-04-08 20:55:13 +02:00
Approved-by: Francisco Casas (@fcasas) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1428
@ -10,8 +10,8 @@ address clamp clamp clamp
|
||||
|
||||
[srv 0]
|
||||
size (2d, 2, 2)
|
||||
1 1 0 1 0 1 1 1
|
||||
1 0 0 1 1 0 1 1
|
||||
1.0 1.0 0.0 1.0 0.0 1.0 1.0 1.0
|
||||
1.0 0.0 0.0 1.0 1.0 0.0 1.0 1.0
|
||||
|
||||
[vertex shader]
|
||||
float4 main(out float2 t : texcoord) : sv_position
|
||||
|
@ -62,10 +62,10 @@ probe (0, 0) rgba (10.0, 8.0, 7.0, 3.0)
|
||||
0 r32g32b32a32-float COLOR 2
|
||||
|
||||
[vb 0]
|
||||
-1.0 -1.0 0 1 1 1 0 1 0 0 0 1 0 1
|
||||
-1.0 1.0 0 1 1 1 0 1 0 0 0 1 0 1
|
||||
1.0 -1.0 0 1 1 1 0 1 0 0 0 1 0 1
|
||||
1.0 1.0 0 1 1 1 0 1 0 0 0 1 0 1
|
||||
-1.0 -1.0 0.0 1.0 1.0 1.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 1.0
|
||||
-1.0 1.0 0.0 1.0 1.0 1.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 1.0
|
||||
1.0 -1.0 0.0 1.0 1.0 1.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 1.0
|
||||
1.0 1.0 0.0 1.0 1.0 1.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 1.0
|
||||
|
||||
[vertex shader]
|
||||
uint3 index;
|
||||
|
@ -6,8 +6,8 @@ shader model < 4.0
|
||||
0 r32-float psize
|
||||
|
||||
[vb 0]
|
||||
-0.5 0 20
|
||||
0.5 0 40
|
||||
-0.5 0.0 20.0
|
||||
0.5 0.0 40.0
|
||||
|
||||
[vertex shader fail]
|
||||
void main(inout float4 pos : position, out float2 size : psize)
|
||||
|
@ -7,10 +7,10 @@ shader model >= 4.0
|
||||
|
||||
[srv 0]
|
||||
size (2d, 4, 4)
|
||||
1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
|
||||
5 5 5 5 6 6 6 6 7 7 7 7 8 8 8 8
|
||||
9 9 9 9 10 10 10 10 11 11 11 11 12 12 12 12
|
||||
13 13 13 13 14 14 14 14 14 15 15 15 16 16 16 16
|
||||
1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 3.0 3.0 3.0 3.0 4.0 4.0 4.0 4.0
|
||||
5.0 5.0 5.0 5.0 6.0 6.0 6.0 6.0 7.0 7.0 7.0 7.0 8.0 8.0 8.0 8.0
|
||||
9.0 9.0 9.0 9.0 10.0 10.0 10.0 10.0 11.0 11.0 11.0 11.0 12.0 12.0 12.0 12.0
|
||||
13.0 13.0 13.0 13.0 14.0 14.0 14.0 14.0 14.0 15.0 15.0 15.0 16.0 16.0 16.0 16.0
|
||||
|
||||
|
||||
[pixel shader]
|
||||
|
@ -3,9 +3,9 @@ shader model >= 4.0
|
||||
|
||||
[srv 0]
|
||||
size (2d, 3, 3)
|
||||
0 0 0 1 1 0 0 1 2 0 0 1
|
||||
0 1 0 1 1 1 0 1 2 1 0 1
|
||||
0 2 0 1 1 2 0 1 2 2 0 1
|
||||
0.0 0.0 0.0 1.0 1.0 0.0 0.0 1.0 2.0 0.0 0.0 1.0
|
||||
0.0 1.0 0.0 1.0 1.0 1.0 0.0 1.0 2.0 1.0 0.0 1.0
|
||||
0.0 2.0 0.0 1.0 1.0 2.0 0.0 1.0 2.0 2.0 0.0 1.0
|
||||
|
||||
|
||||
[pixel shader]
|
||||
|
@ -663,6 +663,12 @@ static void parse_resource_directive(struct resource_params *resource, const cha
|
||||
case TEXTURE_DATA_UINT:
|
||||
u.u = strtoul(line, &rest, 0);
|
||||
break;
|
||||
|
||||
case TEXTURE_DATA_UNSPECIFIED:
|
||||
u.u = strtoul(line, &rest, 0);
|
||||
if (rest && *rest == '.')
|
||||
u.f = strtof(line, &rest);
|
||||
break;
|
||||
}
|
||||
|
||||
if (rest == line)
|
||||
@ -779,7 +785,7 @@ static void set_default_target(struct shader_runner *runner)
|
||||
params.desc.type = RESOURCE_TYPE_RENDER_TARGET;
|
||||
params.desc.dimension = RESOURCE_DIMENSION_2D;
|
||||
params.desc.format = DXGI_FORMAT_R32G32B32A32_FLOAT;
|
||||
params.data_type = TEXTURE_DATA_FLOAT;
|
||||
params.data_type = TEXTURE_DATA_UNSPECIFIED;
|
||||
params.desc.texel_size = 16;
|
||||
params.desc.width = RENDER_TARGET_WIDTH;
|
||||
params.desc.height = RENDER_TARGET_HEIGHT;
|
||||
@ -2377,7 +2383,7 @@ void run_shader_tests(struct shader_runner *runner, const struct shader_runner_c
|
||||
current_resource.desc.slot = index;
|
||||
current_resource.desc.type = RESOURCE_TYPE_RENDER_TARGET;
|
||||
current_resource.desc.format = DXGI_FORMAT_R32G32B32A32_FLOAT;
|
||||
current_resource.data_type = TEXTURE_DATA_FLOAT;
|
||||
current_resource.data_type = TEXTURE_DATA_UNSPECIFIED;
|
||||
current_resource.desc.texel_size = 16;
|
||||
current_resource.desc.level_count = 1;
|
||||
}
|
||||
@ -2391,7 +2397,7 @@ void run_shader_tests(struct shader_runner *runner, const struct shader_runner_c
|
||||
current_resource.desc.type = RESOURCE_TYPE_DEPTH_STENCIL;
|
||||
current_resource.desc.format = DXGI_FORMAT_D32_FLOAT;
|
||||
current_resource.is_shadow = true;
|
||||
current_resource.data_type = TEXTURE_DATA_FLOAT;
|
||||
current_resource.data_type = TEXTURE_DATA_UNSPECIFIED;
|
||||
current_resource.desc.texel_size = 4;
|
||||
current_resource.desc.level_count = 1;
|
||||
}
|
||||
@ -2404,7 +2410,7 @@ void run_shader_tests(struct shader_runner *runner, const struct shader_runner_c
|
||||
current_resource.desc.slot = index;
|
||||
current_resource.desc.type = RESOURCE_TYPE_TEXTURE;
|
||||
current_resource.desc.format = DXGI_FORMAT_R32G32B32A32_FLOAT;
|
||||
current_resource.data_type = TEXTURE_DATA_FLOAT;
|
||||
current_resource.data_type = TEXTURE_DATA_UNSPECIFIED;
|
||||
current_resource.desc.texel_size = 16;
|
||||
current_resource.desc.level_count = 1;
|
||||
}
|
||||
@ -2417,7 +2423,7 @@ void run_shader_tests(struct shader_runner *runner, const struct shader_runner_c
|
||||
current_resource.desc.slot = index;
|
||||
current_resource.desc.type = RESOURCE_TYPE_UAV;
|
||||
current_resource.desc.format = DXGI_FORMAT_R32G32B32A32_FLOAT;
|
||||
current_resource.data_type = TEXTURE_DATA_FLOAT;
|
||||
current_resource.data_type = TEXTURE_DATA_UNSPECIFIED;
|
||||
current_resource.desc.texel_size = 16;
|
||||
current_resource.desc.level_count = 1;
|
||||
}
|
||||
@ -2430,7 +2436,7 @@ void run_shader_tests(struct shader_runner *runner, const struct shader_runner_c
|
||||
current_resource.desc.slot = index;
|
||||
current_resource.desc.type = RESOURCE_TYPE_VERTEX_BUFFER;
|
||||
current_resource.desc.dimension = RESOURCE_DIMENSION_BUFFER;
|
||||
current_resource.data_type = TEXTURE_DATA_FLOAT;
|
||||
current_resource.data_type = TEXTURE_DATA_UNSPECIFIED;
|
||||
}
|
||||
else if (!strcmp(line, "[test]\n"))
|
||||
{
|
||||
|
@ -65,6 +65,7 @@ const char *shader_type_string(enum shader_type type);
|
||||
|
||||
enum texture_data_type
|
||||
{
|
||||
TEXTURE_DATA_UNSPECIFIED,
|
||||
TEXTURE_DATA_FLOAT,
|
||||
TEXTURE_DATA_SINT,
|
||||
TEXTURE_DATA_UINT,
|
||||
|
Loading…
x
Reference in New Issue
Block a user