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]
|
||||
draw quad
|
||||
todo(sm<4) draw quad
|
||||
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]
|
||||
draw quad
|
||||
todo(sm<4) draw quad
|
||||
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]
|
||||
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,
|
||||
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_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};
|
||||
@ -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_push_constant_buffer push_constants;
|
||||
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_compile_option options[2];
|
||||
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.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.environment = VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_0;
|
||||
spirv_info.extensions = spirv_extensions;
|
||||
|
Loading…
x
Reference in New Issue
Block a user