mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
tests/shader_runner: Build a varying map in the Vulkan runner.
This adds todos to two tests. The tests in question have mismatching masks and previously failed Vulkan validation anyway.
This commit is contained in:
parent
d12a9738a0
commit
e452519dcb
Notes:
Henri Verbeet
2024-10-28 18:11:45 +01:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1216
@ -85,7 +85,7 @@ float4 main(in apple a) : sv_target
|
|||||||
}
|
}
|
||||||
|
|
||||||
[test]
|
[test]
|
||||||
draw quad
|
todo(sm<4) draw quad
|
||||||
probe (0, 0) rgba (10.0, 20.0, 30.0, 40.0)
|
probe (0, 0) rgba (10.0, 20.0, 30.0, 40.0)
|
||||||
|
|
||||||
|
|
||||||
@ -287,7 +287,7 @@ float4 main(in float4 a : TEXCOORD0, in float3 b : TEXCOORD1) : sv_target
|
|||||||
}
|
}
|
||||||
|
|
||||||
[test]
|
[test]
|
||||||
draw quad
|
todo(sm<4) draw quad
|
||||||
probe (0, 0) rgba (10.0, 11.0, 20.0, 21.0)
|
probe (0, 0) rgba (10.0, 11.0, 20.0, 21.0)
|
||||||
|
|
||||||
|
|
||||||
|
@ -159,4 +159,4 @@ float4 main(float4 pos : SV_Position, float4 color : COLOR) : SV_Target
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
todo(mvk & sm<4) draw triangle list 3
|
todo(mvk & sm<4) draw triangle list 3
|
||||||
todo(sm<4) probe (0, 0) rgba (1.0, 10.0, 11.0, 4.0)
|
probe (0, 0) rgba(1.0, 10.0, 11.0, 4.0)
|
||||||
|
@ -294,6 +294,7 @@ static bool compile_hlsl_and_scan(struct vulkan_shader_runner *runner, enum shad
|
|||||||
static bool compile_d3d_code(struct vulkan_shader_runner *runner,
|
static bool compile_d3d_code(struct vulkan_shader_runner *runner,
|
||||||
enum shader_type type, struct vkd3d_shader_code *spirv)
|
enum shader_type type, struct vkd3d_shader_code *spirv)
|
||||||
{
|
{
|
||||||
|
struct vkd3d_shader_varying_map_info varying_map_info = {.type = VKD3D_SHADER_STRUCTURE_TYPE_VARYING_MAP_INFO};
|
||||||
struct vkd3d_shader_spirv_target_info spirv_info = {.type = VKD3D_SHADER_STRUCTURE_TYPE_SPIRV_TARGET_INFO};
|
struct vkd3d_shader_spirv_target_info spirv_info = {.type = VKD3D_SHADER_STRUCTURE_TYPE_SPIRV_TARGET_INFO};
|
||||||
struct vkd3d_shader_interface_info interface_info = {.type = VKD3D_SHADER_STRUCTURE_TYPE_INTERFACE_INFO};
|
struct vkd3d_shader_interface_info interface_info = {.type = VKD3D_SHADER_STRUCTURE_TYPE_INTERFACE_INFO};
|
||||||
struct vkd3d_shader_parameter_info parameter_info = {.type = VKD3D_SHADER_STRUCTURE_TYPE_PARAMETER_INFO};
|
struct vkd3d_shader_parameter_info parameter_info = {.type = VKD3D_SHADER_STRUCTURE_TYPE_PARAMETER_INFO};
|
||||||
@ -301,6 +302,7 @@ static bool compile_d3d_code(struct vulkan_shader_runner *runner,
|
|||||||
struct vkd3d_shader_resource_binding bindings[MAX_RESOURCES + MAX_SAMPLERS];
|
struct vkd3d_shader_resource_binding bindings[MAX_RESOURCES + MAX_SAMPLERS];
|
||||||
struct vkd3d_shader_push_constant_buffer push_constants;
|
struct vkd3d_shader_push_constant_buffer push_constants;
|
||||||
enum vkd3d_shader_spirv_extension spirv_extensions[2];
|
enum vkd3d_shader_spirv_extension spirv_extensions[2];
|
||||||
|
struct vkd3d_shader_varying_map varying_map[12];
|
||||||
struct vkd3d_shader_resource_binding *binding;
|
struct vkd3d_shader_resource_binding *binding;
|
||||||
struct vkd3d_shader_compile_option options[2];
|
struct vkd3d_shader_compile_option options[2];
|
||||||
struct vkd3d_shader_parameter1 parameters[17];
|
struct vkd3d_shader_parameter1 parameters[17];
|
||||||
@ -325,6 +327,18 @@ static bool compile_d3d_code(struct vulkan_shader_runner *runner,
|
|||||||
info.option_count = ARRAY_SIZE(options);
|
info.option_count = ARRAY_SIZE(options);
|
||||||
info.options = options;
|
info.options = options;
|
||||||
|
|
||||||
|
if (type == SHADER_TYPE_VS && info.source_type == VKD3D_SHADER_SOURCE_D3D_BYTECODE)
|
||||||
|
{
|
||||||
|
info.next = &varying_map_info;
|
||||||
|
|
||||||
|
varying_map_info.next = &spirv_info;
|
||||||
|
varying_map_info.varying_map = varying_map;
|
||||||
|
vkd3d_shader_build_varying_map(&runner->signatures[SHADER_TYPE_VS].output,
|
||||||
|
&runner->signatures[SHADER_TYPE_PS].input, &varying_map_info.varying_count, varying_map);
|
||||||
|
ok(varying_map_info.varying_count <= ARRAY_SIZE(varying_map),
|
||||||
|
"Got unexpected count %u.\n", varying_map_info.varying_count);
|
||||||
|
}
|
||||||
|
|
||||||
spirv_info.next = &interface_info;
|
spirv_info.next = &interface_info;
|
||||||
spirv_info.environment = VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_0;
|
spirv_info.environment = VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_0;
|
||||||
spirv_info.extensions = spirv_extensions;
|
spirv_info.extensions = spirv_extensions;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user