Commit 167ad1ee authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

d3dcompiler: Add support for matrix majority compiler flags.

parent 34319496
...@@ -406,7 +406,7 @@ HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filen ...@@ -406,7 +406,7 @@ HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filen
struct d3dcompiler_include_from_file include_from_file; struct d3dcompiler_include_from_file include_from_file;
struct vkd3d_shader_preprocess_info preprocess_info; struct vkd3d_shader_preprocess_info preprocess_info;
struct vkd3d_shader_hlsl_source_info hlsl_info; struct vkd3d_shader_hlsl_source_info hlsl_info;
struct vkd3d_shader_compile_option options[2]; struct vkd3d_shader_compile_option options[3];
struct vkd3d_shader_compile_info compile_info; struct vkd3d_shader_compile_info compile_info;
struct vkd3d_shader_compile_option *option; struct vkd3d_shader_compile_option *option;
struct vkd3d_shader_code byte_code; struct vkd3d_shader_code byte_code;
...@@ -453,7 +453,7 @@ HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filen ...@@ -453,7 +453,7 @@ HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filen
include = &include_from_file.ID3DInclude_iface; include = &include_from_file.ID3DInclude_iface;
} }
if (flags & ~D3DCOMPILE_DEBUG) if (flags & ~(D3DCOMPILE_DEBUG | D3DCOMPILE_PACK_MATRIX_ROW_MAJOR | D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR))
FIXME("Ignoring flags %#x.\n", flags); FIXME("Ignoring flags %#x.\n", flags);
if (effect_flags) if (effect_flags)
FIXME("Ignoring effect flags %#x.\n", effect_flags); FIXME("Ignoring effect flags %#x.\n", effect_flags);
...@@ -519,6 +519,19 @@ HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filen ...@@ -519,6 +519,19 @@ HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filen
option->value = true; option->value = true;
} }
if (flags & D3DCOMPILE_PACK_MATRIX_ROW_MAJOR)
{
option = &options[compile_info.option_count++];
option->name = VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_ORDER;
option->value = VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_ROW_MAJOR;
}
else if (flags & D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR)
{
option = &options[compile_info.option_count++];
option->name = VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_ORDER;
option->value = VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_COLUMN_MAJOR;
}
ret = vkd3d_shader_compile(&compile_info, &byte_code, &messages); ret = vkd3d_shader_compile(&compile_info, &byte_code, &messages);
if (ret) if (ret)
......
...@@ -968,7 +968,6 @@ static void test_majority(void) ...@@ -968,7 +968,6 @@ static void test_majority(void)
draw_quad(test_context.device, ps_code); draw_quad(test_context.device, ps_code);
v = get_color_vec4(test_context.device, 0, 0); v = get_color_vec4(test_context.device, 0, 0);
todo_wine_if(i == 4 || i == 6)
ok(compare_vec4(&v, c->x, c->y, c->z, c->w, 1), ok(compare_vec4(&v, c->x, c->y, c->z, c->w, 1),
"Got unexpected value {%.8e, %.8e, %.8e, %.8e}.\n", v.x, v.y, v.z, v.w); "Got unexpected value {%.8e, %.8e, %.8e, %.8e}.\n", v.x, v.y, v.z, v.w);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment