From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/d3dcompiler_43/compiler.c | 77 ++++++++++++++++++++-------------- dlls/d3dx9_36/tests/effect.c | 11 +---- 2 files changed, 47 insertions(+), 41 deletions(-)
diff --git a/dlls/d3dcompiler_43/compiler.c b/dlls/d3dcompiler_43/compiler.c index ded52bad965..c1940e8d888 100644 --- a/dlls/d3dcompiler_43/compiler.c +++ b/dlls/d3dcompiler_43/compiler.c @@ -397,29 +397,12 @@ HRESULT WINAPI D3DAssemble(const void *data, SIZE_T datasize, const char *filena return hr; }
-HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filename, - const D3D_SHADER_MACRO *macros, ID3DInclude *include, const char *entry_point, - const char *profile, UINT flags, UINT effect_flags, UINT secondary_flags, - const void *secondary_data, SIZE_T secondary_data_size, ID3DBlob **shader_blob, - ID3DBlob **messages_blob) +static enum vkd3d_shader_target_type get_target_for_profile(const char *profile) { - struct d3dcompiler_include_from_file include_from_file; - struct vkd3d_shader_preprocess_info preprocess_info; - struct vkd3d_shader_hlsl_source_info hlsl_info; - struct vkd3d_shader_compile_option options[4]; - struct vkd3d_shader_compile_info compile_info; - struct vkd3d_shader_compile_option *option; - struct vkd3d_shader_code byte_code; - const D3D_SHADER_MACRO *macro; size_t profile_len, i; - char *messages; - HRESULT hr; - int ret;
static const char * const d3dbc_profiles[] = { - "fx_2_", - "ps.1.", "ps.2.", "ps.3.", @@ -439,6 +422,50 @@ HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filen "tx_1_", };
+ static const char * const fx_profiles[] = + { + "fx_2_0", + "fx_4_0", + "fx_4_1", + "fx_5_0", + }; + + profile_len = strlen(profile); + for (i = 0; i < ARRAY_SIZE(d3dbc_profiles); ++i) + { + size_t len = strlen(d3dbc_profiles[i]); + + if (len <= profile_len && !memcmp(profile, d3dbc_profiles[i], len)) + return VKD3D_SHADER_TARGET_D3D_BYTECODE; + } + + for (i = 0; i < ARRAY_SIZE(fx_profiles); ++i) + { + if (!strcmp(profile, fx_profiles[i])) + return VKD3D_SHADER_TARGET_FX; + } + + return VKD3D_SHADER_TARGET_DXBC_TPF; +} + +HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filename, + const D3D_SHADER_MACRO *macros, ID3DInclude *include, const char *entry_point, + const char *profile, UINT flags, UINT effect_flags, UINT secondary_flags, + const void *secondary_data, SIZE_T secondary_data_size, ID3DBlob **shader_blob, + ID3DBlob **messages_blob) +{ + struct d3dcompiler_include_from_file include_from_file; + struct vkd3d_shader_preprocess_info preprocess_info; + struct vkd3d_shader_hlsl_source_info hlsl_info; + struct vkd3d_shader_compile_option options[4]; + struct vkd3d_shader_compile_info compile_info; + struct vkd3d_shader_compile_option *option; + struct vkd3d_shader_code byte_code; + const D3D_SHADER_MACRO *macro; + char *messages; + HRESULT hr; + int ret; + TRACE("data %p, data_size %Iu, filename %s, macros %p, include %p, entry_point %s, " "profile %s, flags %#x, effect_flags %#x, secondary_flags %#x, secondary_data %p, " "secondary_data_size %Iu, shader_blob %p, messages_blob %p.\n", @@ -477,24 +504,12 @@ HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filen compile_info.source.code = data; compile_info.source.size = data_size; compile_info.source_type = VKD3D_SHADER_SOURCE_HLSL; - compile_info.target_type = VKD3D_SHADER_TARGET_DXBC_TPF; + compile_info.target_type = get_target_for_profile(profile); compile_info.options = options; compile_info.option_count = 1; compile_info.log_level = VKD3D_SHADER_LOG_INFO; compile_info.source_name = filename;
- profile_len = strlen(profile); - for (i = 0; i < ARRAY_SIZE(d3dbc_profiles); ++i) - { - size_t len = strlen(d3dbc_profiles[i]); - - if (len <= profile_len && !memcmp(profile, d3dbc_profiles[i], len)) - { - compile_info.target_type = VKD3D_SHADER_TARGET_D3D_BYTECODE; - break; - } - } - preprocess_info.type = VKD3D_SHADER_STRUCTURE_TYPE_PREPROCESS_INFO; preprocess_info.next = &hlsl_info; preprocess_info.macros = (const struct vkd3d_shader_macro *)macros; diff --git a/dlls/d3dx9_36/tests/effect.c b/dlls/d3dx9_36/tests/effect.c index 5420501c92f..0e7028f38b6 100644 --- a/dlls/d3dx9_36/tests/effect.c +++ b/dlls/d3dx9_36/tests/effect.c @@ -257,12 +257,7 @@ static void test_create_effect_and_pool(IDirect3DDevice9 *device) ok(hr == D3D_OK, "Got result %lx, expected 0 (D3D_OK)\n", hr);
hr = D3DXCreateEffect(device, effect_desc, sizeof(effect_desc), NULL, NULL, 0, NULL, &effect, NULL); - todo_wine ok(hr == D3D_OK, "Got result %lx, expected 0 (D3D_OK)\n", hr); - if (FAILED(hr)) - { - skip("Failed to compile effect, skipping test.\n"); - return; - } + ok(hr == D3D_OK, "Got result %lx, expected 0 (D3D_OK)\n", hr);
hr = effect->lpVtbl->QueryInterface(effect, &IID_ID3DXBaseEffect, (void **)&base); ok(hr == E_NOINTERFACE, "QueryInterface failed, got %lx, expected %lx (E_NOINTERFACE)\n", hr, E_NOINTERFACE); @@ -8041,15 +8036,12 @@ static void test_create_effect_from_file(void) /* This is apparently broken on native, it ends up using the wrong include. */ hr = D3DXCreateEffectFromFileExW(device, filename_w, NULL, NULL, NULL, 0, NULL, &effect, &messages); - todo_wine ok(hr == E_FAIL, "Unexpected error, hr %#lx.\n", hr); if (messages) { trace("D3DXCreateEffectFromFileExW messages:\n%s", (char *)ID3DXBuffer_GetBufferPointer(messages)); ID3DXBuffer_Release(messages); } - if (effect) - effect->lpVtbl->Release(effect);
delete_file("effect1.fx"); delete_file("effect2.fx"); @@ -8067,7 +8059,6 @@ static void test_create_effect_from_file(void) * is "ID3DXEffectCompiler: There were no techniques" */ hr = D3DXCreateEffectFromFileExW(device, filename_w, NULL, &include.ID3DXInclude_iface, NULL, 0, NULL, &effect, &messages); - todo_wine ok(hr == E_FAIL, "D3DXInclude test failed with error %#lx.\n", hr); if (messages) {
From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/d3dcompiler_43/compiler.c | 14 ++++++++++++++ dlls/d3dcompiler_43/d3dcompiler_private.h | 1 + 2 files changed, 15 insertions(+)
diff --git a/dlls/d3dcompiler_43/compiler.c b/dlls/d3dcompiler_43/compiler.c index c1940e8d888..e5c9981ded5 100644 --- a/dlls/d3dcompiler_43/compiler.c +++ b/dlls/d3dcompiler_43/compiler.c @@ -601,6 +601,20 @@ HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filen return S_OK; }
+ /* Unlike other effect profiles fx_4_x is using DXBC container. */ + if (!strcmp(profile, "fx_4_0") || !strcmp(profile, "fx_4_1")) + { + struct vkd3d_shader_dxbc_section_desc section = { .tag = TAG_FX10, .data = byte_code }; + struct vkd3d_shader_code dxbc; + + ret = vkd3d_shader_serialize_dxbc(1, §ion, &dxbc, NULL); + vkd3d_shader_free_shader_code(&byte_code); + if (ret) + return hresult_from_vkd3d_result(ret); + + byte_code = dxbc; + } + if (SUCCEEDED(hr = D3DCreateBlob(byte_code.size, shader_blob))) memcpy(ID3D10Blob_GetBufferPointer(*shader_blob), byte_code.code, byte_code.size);
diff --git a/dlls/d3dcompiler_43/d3dcompiler_private.h b/dlls/d3dcompiler_43/d3dcompiler_private.h index 33c82c000c5..a1759da661e 100644 --- a/dlls/d3dcompiler_43/d3dcompiler_private.h +++ b/dlls/d3dcompiler_43/d3dcompiler_private.h @@ -523,6 +523,7 @@ void SlDeleteShader(struct bwriter_shader *shader); ((DWORD)(ch2) << 16) | ((DWORD)(ch3) << 24 )) #define TAG_Aon9 MAKE_TAG('A', 'o', 'n', '9') #define TAG_DXBC MAKE_TAG('D', 'X', 'B', 'C') +#define TAG_FX10 MAKE_TAG('F', 'X', '1', '0') #define TAG_ISGN MAKE_TAG('I', 'S', 'G', 'N') #define TAG_OSGN MAKE_TAG('O', 'S', 'G', 'N') #define TAG_OSG5 MAKE_TAG('O', 'S', 'G', '5')
From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/d3d10/tests/effect.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+)
diff --git a/dlls/d3d10/tests/effect.c b/dlls/d3d10/tests/effect.c index a9f4c1e47e5..0935541ced0 100644 --- a/dlls/d3d10/tests/effect.c +++ b/dlls/d3d10/tests/effect.c @@ -9875,6 +9875,36 @@ static void test_effect_fx_4_1_blend_state(void) ok(!refcount, "Device has %lu references left.\n", refcount); }
+static void test_effect_compiler(void) +{ + static char empty_effect[] = "technique10 {};"; + D3D10_EFFECT_DESC desc; + ID3D10Device *device; + ID3D10Effect *effect; + ID3D10Blob *blob; + HRESULT hr; + + if (!(device = create_device())) + { + skip("Failed to create device, skipping tests.\n"); + return; + } + + hr = D3D10CompileEffectFromMemory(empty_effect, sizeof(empty_effect), NULL, NULL, NULL, 0, 0, + &blob, NULL); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = create_effect(ID3D10Blob_GetBufferPointer(blob), 0, device, NULL, &effect); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + hr = ID3D10Effect_GetDesc(effect, &desc); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(desc.Techniques == 1, "Unexpected technique count %u.\n", desc.Techniques); + ID3D10Effect_Release(effect); + + ID3D10Device_Release(device); + ID3D10Blob_Release(blob); +} + START_TEST(effect) { test_effect_constant_buffer_type(); @@ -9903,4 +9933,5 @@ START_TEST(effect) test_effect_value_expression(); test_effect_fx_4_1(); test_effect_fx_4_1_blend_state(); + test_effect_compiler(); }
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=143927
Your paranoid android.
=== debian11b (64 bit WoW report) ===
d3d10_1: d3d10_1.c:1078: Test succeeded inside todo block: Unexpected hr 0x80004005.
d3dx10_34: d3dx10.c:4378: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4379: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 0000000001239DE0. d3dx10.c:4468: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4469: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011A4A60. d3dx10.c:4478: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4479: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011D5720. d3dx10.c:4587: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4588: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011BB560. d3dx10.c:4597: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4598: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011B6050.
d3dx10_35: d3dx10.c:4378: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4379: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 00000000011BBA60. d3dx10.c:4468: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4469: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011BB620. d3dx10.c:4478: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4479: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011E38D0. d3dx10.c:4587: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4588: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011E3AA0. d3dx10.c:4597: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4598: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011D3C10.
d3dx10_36: d3dx10.c:4378: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4379: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 0000000001195A50. d3dx10.c:4468: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4469: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011B6010. d3dx10.c:4478: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4479: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011E39C0. d3dx10.c:4587: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4588: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011E39C0. d3dx10.c:4597: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4598: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011BB790.
d3dx10_37: d3dx10.c:4378: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4379: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 00000000011BD7E0. d3dx10.c:4468: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4469: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011D1820. d3dx10.c:4478: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4479: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011D19F0. d3dx10.c:4587: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4588: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011A45D0. d3dx10.c:4597: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4598: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011A45D0.
d3dx10_38: d3dx10.c:4378: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4379: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 0000000001239CF0. d3dx10.c:4468: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4469: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011B5D90. d3dx10.c:4478: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4479: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 0000000001239CF0. d3dx10.c:4587: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4588: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011C3380. d3dx10.c:4597: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4598: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011C3550.
d3dx10_39: d3dx10.c:4378: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4379: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 0000000001195A50. d3dx10.c:4468: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4469: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 0000000001195A50. d3dx10.c:4478: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4479: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011A49E0. d3dx10.c:4587: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4588: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011E3B30. d3dx10.c:4597: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4598: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 0000000001195A50.
d3dx10_40: d3dx10.c:4378: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4379: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 0000000001239EA0. d3dx10.c:4468: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4469: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011A4A80. d3dx10.c:4478: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4479: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011E3560. d3dx10.c:4587: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4588: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 0000000001195800. d3dx10.c:4597: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4598: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011959D0.
d3dx10_41: d3dx10.c:4378: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4379: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 0000000001239F90. d3dx10.c:4468: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4469: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011C3380. d3dx10.c:4478: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4479: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011C3550. d3dx10.c:4587: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4588: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011C3380. d3dx10.c:4597: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4598: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011E37D0.
d3dx10_42: d3dx10.c:4378: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4379: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 00000000011D41F0. d3dx10.c:4468: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4469: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011B5FB0. d3dx10.c:4478: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4479: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011B5FB0. d3dx10.c:4587: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4588: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011F11E0. d3dx10.c:4597: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4598: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011BFDC0.
d3dx10_43: d3dx10.c:4378: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4379: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 00000000011D6A80. d3dx10.c:4468: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4469: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011D1B50. d3dx10.c:4478: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4479: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011BB620. d3dx10.c:4587: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4588: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011BB620. d3dx10.c:4597: Test succeeded inside todo block: Got unexpected hr 0. d3dx10.c:4598: Test succeeded inside todo block: Got unexpected errors 0000000000000000. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011D1B50.
Matteo Bruni (@Mystral) commented about dlls/d3dcompiler_43/compiler.c:
option = &options[0]; option->name = VKD3D_SHADER_COMPILE_OPTION_API_VERSION; option->value = VKD3D_SHADER_API_VERSION_1_3;
Should we raise the value?
Matteo Bruni (@Mystral) commented about dlls/d3dx9_36/tests/effect.c:
/* This is apparently broken on native, it ends up using the wrong include. */
I guess we could also get rid of (or reword) this comment, since we're now matching native and its "interesting" include paths.
Matteo Bruni (@Mystral) commented about dlls/d3dx9_36/tests/effect.c:
* is "ID3DXEffectCompiler: There were no techniques" */
Same here. You can leave these two to me if you want.
On Sun Mar 10 21:00:35 2024 +0000, Matteo Bruni wrote:
Should we raise the value?
Maybe, but it does not affect anything for this use case I believe.
On Sun Mar 10 21:00:37 2024 +0000, Matteo Bruni wrote:
Same here. You can leave these two to me if you want.
Sure, feel free to push to this branch directly.
On Sun Mar 10 21:05:50 2024 +0000, Nikolay Sivov wrote:
Maybe, but it does not affect anything for this use case I believe.
A better option might be to replace this with exact copy of D3DCompile2() from vkd3d, shouldn't be any reason to have them differ.
On Mon Mar 11 21:05:41 2024 +0000, Nikolay Sivov wrote:
A better option might be to replace this with exact copy of D3DCompile2() from vkd3d, shouldn't be any reason to have them differ.
Removing spurious differences in the whole function is certainly good, although we probably want to do that over a few (separate) patches, if nothing else for future regression testing concerns.
For this specific API_VERSION change, my idea was to sort of enforce that we have a recent-enough vkd3d-shader version around, but that's probably not the way to do it.
This merge request was approved by Matteo Bruni.
On Mon Mar 11 21:07:31 2024 +0000, Matteo Bruni wrote:
I guess we could also get rid of (or reword) this comment, since we're now matching native and its "interesting" include paths.
It looks like we aren't, actually. I think I want to improve these comments anyway, but that's something for a different patch.