mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
tests/shader_runner: Get rid of enum texture_data_type.
This commit is contained in:
Notes:
Henri Verbeet
2025-04-14 17:17:01 +02:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1453
@@ -317,31 +317,29 @@ static const char *close_parentheses(const char *line)
|
||||
return line;
|
||||
}
|
||||
|
||||
static DXGI_FORMAT parse_format(const char *line, enum texture_data_type *data_type, unsigned int *texel_size,
|
||||
bool *is_shadow, const char **rest)
|
||||
static DXGI_FORMAT parse_format(const char *line, unsigned int *texel_size, bool *is_shadow, const char **rest)
|
||||
{
|
||||
static const struct
|
||||
{
|
||||
const char *string;
|
||||
enum texture_data_type data_type;
|
||||
unsigned int texel_size;
|
||||
DXGI_FORMAT format;
|
||||
bool is_shadow;
|
||||
}
|
||||
formats[] =
|
||||
{
|
||||
{"r32g32b32a32-float", TEXTURE_DATA_FLOAT, 16, DXGI_FORMAT_R32G32B32A32_FLOAT},
|
||||
{"r32g32b32a32-sint", TEXTURE_DATA_SINT, 16, DXGI_FORMAT_R32G32B32A32_SINT},
|
||||
{"r32g32b32a32-uint", TEXTURE_DATA_UINT, 16, DXGI_FORMAT_R32G32B32A32_UINT},
|
||||
{"r32g32-float", TEXTURE_DATA_FLOAT, 8, DXGI_FORMAT_R32G32_FLOAT},
|
||||
{"r32g32-sint", TEXTURE_DATA_SINT, 8, DXGI_FORMAT_R32G32_SINT},
|
||||
{"r32g32-uint", TEXTURE_DATA_UINT, 8, DXGI_FORMAT_R32G32_UINT},
|
||||
{"r32-float-shadow", TEXTURE_DATA_FLOAT, 4, DXGI_FORMAT_R32_FLOAT, true},
|
||||
{"r32-float", TEXTURE_DATA_FLOAT, 4, DXGI_FORMAT_R32_FLOAT},
|
||||
{"r32-sint", TEXTURE_DATA_SINT, 4, DXGI_FORMAT_R32_SINT},
|
||||
{"r32-uint", TEXTURE_DATA_UINT, 4, DXGI_FORMAT_R32_UINT},
|
||||
{"r32-typeless", TEXTURE_DATA_UINT, 4, DXGI_FORMAT_R32_TYPELESS},
|
||||
{"unknown", TEXTURE_DATA_UINT, 0, DXGI_FORMAT_UNKNOWN},
|
||||
{"r32g32b32a32-float", 16, DXGI_FORMAT_R32G32B32A32_FLOAT},
|
||||
{"r32g32b32a32-sint", 16, DXGI_FORMAT_R32G32B32A32_SINT},
|
||||
{"r32g32b32a32-uint", 16, DXGI_FORMAT_R32G32B32A32_UINT},
|
||||
{"r32g32-float", 8, DXGI_FORMAT_R32G32_FLOAT},
|
||||
{"r32g32-sint", 8, DXGI_FORMAT_R32G32_SINT},
|
||||
{"r32g32-uint", 8, DXGI_FORMAT_R32G32_UINT},
|
||||
{"r32-float-shadow", 4, DXGI_FORMAT_R32_FLOAT, true},
|
||||
{"r32-float", 4, DXGI_FORMAT_R32_FLOAT},
|
||||
{"r32-sint", 4, DXGI_FORMAT_R32_SINT},
|
||||
{"r32-uint", 4, DXGI_FORMAT_R32_UINT},
|
||||
{"r32-typeless", 4, DXGI_FORMAT_R32_TYPELESS},
|
||||
{"unknown", 0, DXGI_FORMAT_UNKNOWN},
|
||||
};
|
||||
unsigned int i;
|
||||
|
||||
@@ -349,8 +347,6 @@ static DXGI_FORMAT parse_format(const char *line, enum texture_data_type *data_t
|
||||
{
|
||||
if (match_string(line, formats[i].string, rest))
|
||||
{
|
||||
if (data_type)
|
||||
*data_type = formats[i].data_type;
|
||||
if (texel_size)
|
||||
*texel_size = formats[i].texel_size;
|
||||
if (is_shadow)
|
||||
@@ -444,7 +440,7 @@ static void parse_require_directive(struct shader_runner *runner, const char *li
|
||||
}
|
||||
else if (match_string(line, "format", &line))
|
||||
{
|
||||
DXGI_FORMAT format = parse_format(line, NULL, NULL, NULL, &line);
|
||||
DXGI_FORMAT format = parse_format(line, NULL, NULL, &line);
|
||||
|
||||
while (line[0] != '\0')
|
||||
{
|
||||
@@ -566,8 +562,7 @@ static void parse_resource_directive(struct resource_params *resource, const cha
|
||||
{
|
||||
if (match_string(line, "format", &line))
|
||||
{
|
||||
resource->desc.format = parse_format(line, &resource->data_type,
|
||||
&resource->desc.texel_size, &resource->is_shadow, &line);
|
||||
resource->desc.format = parse_format(line, &resource->desc.texel_size, &resource->is_shadow, &line);
|
||||
assert_that(!resource->explicit_format, "Resource format already specified.\n");
|
||||
resource->explicit_format = true;
|
||||
}
|
||||
@@ -641,35 +636,15 @@ static void parse_resource_directive(struct resource_params *resource, const cha
|
||||
union
|
||||
{
|
||||
float f;
|
||||
int32_t i;
|
||||
uint32_t u;
|
||||
} u;
|
||||
char *rest;
|
||||
|
||||
u.u = 0;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
switch (resource->data_type)
|
||||
{
|
||||
case TEXTURE_DATA_FLOAT:
|
||||
u.f = strtof(line, &rest);
|
||||
break;
|
||||
|
||||
case TEXTURE_DATA_SINT:
|
||||
u.i = strtol(line, &rest, 0);
|
||||
break;
|
||||
|
||||
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;
|
||||
}
|
||||
u.u = strtoul(line, &rest, 0);
|
||||
if (rest && *rest == '.')
|
||||
u.f = strtof(line, &rest);
|
||||
|
||||
if (rest == line)
|
||||
break;
|
||||
@@ -699,7 +674,7 @@ static void parse_input_layout_directive(struct shader_runner *runner, const cha
|
||||
fatal_error("Malformed input layout directive '%s'.\n", line);
|
||||
line = rest;
|
||||
|
||||
element->format = parse_format(line, NULL, &element->texel_size, NULL, &line);
|
||||
element->format = parse_format(line, &element->texel_size, NULL, &line);
|
||||
|
||||
if (!(rest = strpbrk(line, " \n")))
|
||||
rest = line + strlen(line);
|
||||
@@ -785,7 +760,6 @@ 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_UNSPECIFIED;
|
||||
params.desc.texel_size = 16;
|
||||
params.desc.width = RENDER_TARGET_WIDTH;
|
||||
params.desc.height = RENDER_TARGET_HEIGHT;
|
||||
@@ -2383,7 +2357,6 @@ 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_UNSPECIFIED;
|
||||
current_resource.desc.texel_size = 16;
|
||||
current_resource.desc.level_count = 1;
|
||||
}
|
||||
@@ -2397,7 +2370,6 @@ 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_UNSPECIFIED;
|
||||
current_resource.desc.texel_size = 4;
|
||||
current_resource.desc.level_count = 1;
|
||||
}
|
||||
@@ -2410,7 +2382,6 @@ 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_UNSPECIFIED;
|
||||
current_resource.desc.texel_size = 16;
|
||||
current_resource.desc.level_count = 1;
|
||||
}
|
||||
@@ -2423,7 +2394,6 @@ 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_UNSPECIFIED;
|
||||
current_resource.desc.texel_size = 16;
|
||||
current_resource.desc.level_count = 1;
|
||||
}
|
||||
@@ -2436,7 +2406,6 @@ 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_UNSPECIFIED;
|
||||
}
|
||||
else if (!strcmp(line, "[test]\n"))
|
||||
{
|
||||
|
@@ -63,14 +63,6 @@ enum shader_type
|
||||
|
||||
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,
|
||||
};
|
||||
|
||||
struct sampler
|
||||
{
|
||||
unsigned int slot;
|
||||
@@ -116,7 +108,6 @@ struct resource_params
|
||||
bool is_raw;
|
||||
bool is_uav_counter;
|
||||
bool explicit_format;
|
||||
enum texture_data_type data_type;
|
||||
unsigned int stride;
|
||||
|
||||
uint8_t *data;
|
||||
|
Reference in New Issue
Block a user