Wine-Devel
By thread
wine-devel@list.winehq.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
June 2018
- 68 participants
- 1149 messages
Re: [PATCH] ole32/tests: Store GUIDs by reference.
by Huw Davies
On Tue, Jun 05, 2018 at 01:56:53PM +0200, Thomas Faber wrote:
> Fixes MSVC build.
>
> Signed-off-by: Thomas Faber <thomas.faber(a)reactos.org>
> ---
> This is an alternative to "ole32/tests: Fix MSVC build.", suggested by Dmitry.
Yes, much better. Thanks Dmitry!
Signed-off-by: Huw Davies <huw(a)codeweavers.com>
June 5, 2018
[PATCH] ole32/tests: Store GUIDs by reference.
by Thomas Faber
Fixes MSVC build.
Signed-off-by: Thomas Faber <thomas.faber(a)reactos.org>
---
This is an alternative to "ole32/tests: Fix MSVC build.", suggested by Dmitry.
dlls/ole32/tests/marshal.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/dlls/ole32/tests/marshal.c b/dlls/ole32/tests/marshal.c
index 42049032196..39867394fb5 100644
--- a/dlls/ole32/tests/marshal.c
+++ b/dlls/ole32/tests/marshal.c
@@ -560,12 +560,12 @@ static IPSFactoryBuffer PSFactoryBuffer = { &PSFactoryBufferVtbl };
struct host_object_data
{
IStream *stream;
- IID iid;
+ const IID *iid;
IUnknown *object;
MSHLFLAGS marshal_flags;
IMessageFilter *filter;
IUnknown *register_object;
- CLSID register_clsid;
+ const CLSID *register_clsid;
HANDLE marshal_event;
};
@@ -581,7 +581,7 @@ static DWORD CALLBACK host_object_proc(LPVOID p)
pCoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if(data->register_object) {
- hr = CoRegisterClassObject(&data->register_clsid, data->register_object,
+ hr = CoRegisterClassObject(data->register_clsid, data->register_object,
CLSCTX_INPROC_SERVER, REGCLS_MULTIPLEUSE, ®istration_key);
ok(hr == S_OK, "CoRegisterClassObject failed: %08x\n", hr);
}
@@ -594,7 +594,7 @@ static DWORD CALLBACK host_object_proc(LPVOID p)
ok_ole_success(hr, CoRegisterMessageFilter);
}
- hr = CoMarshalInterface(data->stream, &data->iid, data->object, MSHCTX_INPROC, NULL, data->marshal_flags);
+ hr = CoMarshalInterface(data->stream, data->iid, data->object, MSHCTX_INPROC, NULL, data->marshal_flags);
ok_ole_success(hr, CoMarshalInterface);
/* force the message queue to be created before signaling parent thread */
@@ -639,7 +639,7 @@ static DWORD start_host_object2(struct host_object_data *object_data, HANDLE *th
static DWORD start_host_object(IStream *stream, REFIID riid, IUnknown *object, MSHLFLAGS marshal_flags, HANDLE *thread)
{
- struct host_object_data object_data = { stream, *riid, object, marshal_flags };
+ struct host_object_data object_data = { stream, riid, object, marshal_flags };
return start_host_object2(&object_data, thread);
}
@@ -1254,9 +1254,9 @@ static void test_marshal_channel_buffer(void)
HANDLE thread;
HRESULT hr;
- struct host_object_data object_data = { NULL, IID_IOleClientSite, (IUnknown*)&Test_OleClientSite,
+ struct host_object_data object_data = { NULL, &IID_IOleClientSite, (IUnknown*)&Test_OleClientSite,
MSHLFLAGS_NORMAL, NULL, (IUnknown*)&PSFactoryBuffer,
- CLSID_WineTestPSFactoryBuffer };
+ &CLSID_WineTestPSFactoryBuffer };
cLocks = 0;
external_connections = 0;
@@ -2321,7 +2321,7 @@ static void test_message_filter(void)
IMessageFilter *prev_filter = NULL;
HANDLE thread;
- struct host_object_data object_data = { NULL, IID_IClassFactory, (IUnknown*)&Test_ClassFactory,
+ struct host_object_data object_data = { NULL, &IID_IClassFactory, (IUnknown*)&Test_ClassFactory,
MSHLFLAGS_NORMAL, &MessageFilter };
cLocks = 0;
@@ -4213,7 +4213,7 @@ static void test_channel_hook(void)
HANDLE thread;
HRESULT hr;
- struct host_object_data object_data = { NULL, IID_IClassFactory, (IUnknown*)&Test_ClassFactory,
+ struct host_object_data object_data = { NULL, &IID_IClassFactory, (IUnknown*)&Test_ClassFactory,
MSHLFLAGS_NORMAL, &MessageFilter };
hr = CoRegisterChannelHook(&EXTENTID_WineTest, &TestChannelHook);
--
2.16.1.windows.2
June 5, 2018
[PATCH vkd3d 4/4] demos: Get rid of code for compiling shaders using d3dcompiler.
by Józef Kucia
From: Józef Kucia <jkucia(a)codeweavers.com>
It's unused.
Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com>
---
demos/demo_win32.h | 16 +---------------
1 file changed, 1 insertion(+), 15 deletions(-)
diff --git a/demos/demo_win32.h b/demos/demo_win32.h
index 3b61bcf8eeae..d2a54989e9a7 100644
--- a/demos/demo_win32.h
+++ b/demos/demo_win32.h
@@ -25,10 +25,6 @@
struct demo
{
- HMODULE d3dcompiler;
- HRESULT (WINAPI *compile_from_file)(const WCHAR *filename, const void *defines, void *include,
- const char *entry_point, const char *profile, UINT flags1, UINT flags2,
- ID3DBlob **code, ID3DBlob **errors);
size_t window_count;
bool quit;
@@ -198,11 +194,6 @@ static inline bool demo_init(struct demo *demo, void *user_data)
{
WNDCLASSEXW wc;
- if (!(demo->d3dcompiler = LoadLibraryW(L"d3dcompiler_47")))
- return false;
- if (!(demo->compile_from_file = (void *)GetProcAddress(demo->d3dcompiler, "D3DCompileFromFile")))
- goto fail;
-
wc.cbSize = sizeof(wc);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = demo_window_proc;
@@ -216,7 +207,7 @@ static inline bool demo_init(struct demo *demo, void *user_data)
wc.lpszClassName = DEMO_WINDOW_CLASS_NAME;
wc.hIconSm = LoadIconW(NULL, IDI_WINLOGO);
if (!RegisterClassExW(&wc))
- goto fail;
+ return false;
demo->window_count = 0;
demo->quit = false;
@@ -224,16 +215,11 @@ static inline bool demo_init(struct demo *demo, void *user_data)
demo->idle_func = NULL;
return true;
-
-fail:
- FreeLibrary(demo->d3dcompiler);
- return false;
}
static inline void demo_cleanup(struct demo *demo)
{
UnregisterClassW(DEMO_WINDOW_CLASS_NAME, GetModuleHandle(NULL));
- FreeLibrary(demo->d3dcompiler);
}
static inline void demo_set_idle_func(struct demo *demo,
--
2.16.4
June 5, 2018
[PATCH vkd3d 3/4] libs/vkd3d-shader: Factor out shader_dump_instruction().
by Józef Kucia
From: Józef Kucia <jkucia(a)codeweavers.com>
Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com>
---
libs/vkd3d-shader/trace.c | 484 ++++++++++++++++++++++++----------------------
1 file changed, 249 insertions(+), 235 deletions(-)
diff --git a/libs/vkd3d-shader/trace.c b/libs/vkd3d-shader/trace.c
index f987e3caa877..420ccea37f94 100644
--- a/libs/vkd3d-shader/trace.c
+++ b/libs/vkd3d-shader/trace.c
@@ -1340,13 +1340,260 @@ static void shader_dump_instruction_flags(struct vkd3d_string_buffer *buffer,
}
}
+static void shader_dump_instruction(struct vkd3d_string_buffer *buffer,
+ const struct vkd3d_shader_instruction *ins, const struct vkd3d_shader_version *shader_version)
+{
+ unsigned int i;
+
+ switch (ins->handler_idx)
+ {
+ case VKD3DSIH_DCL:
+ case VKD3DSIH_DCL_UAV_TYPED:
+ shader_dump_decl_usage(buffer, &ins->declaration.semantic, ins->flags, shader_version);
+ shader_dump_ins_modifiers(buffer, &ins->declaration.semantic.reg);
+ shader_addline(buffer, " ");
+ shader_dump_dst_param(buffer, &ins->declaration.semantic.reg, shader_version);
+ break;
+
+ case VKD3DSIH_DCL_CONSTANT_BUFFER:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_src_param(buffer, &ins->declaration.src, shader_version);
+ shader_addline(buffer, ", %s",
+ ins->flags & VKD3DSI_INDEXED_DYNAMIC ? "dynamicIndexed" : "immediateIndexed");
+ break;
+
+ case VKD3DSIH_DCL_FUNCTION_BODY:
+ shader_addline(buffer, "%s fb%u",
+ shader_opcode_names[ins->handler_idx], ins->declaration.index);
+ break;
+
+ case VKD3DSIH_DCL_FUNCTION_TABLE:
+ shader_addline(buffer, "%s ft%u = {...}",
+ shader_opcode_names[ins->handler_idx], ins->declaration.index);
+ break;
+
+ case VKD3DSIH_DCL_GLOBAL_FLAGS:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_global_flags(buffer, ins->flags);
+ break;
+
+ case VKD3DSIH_DCL_HS_MAX_TESSFACTOR:
+ shader_addline(buffer, "%s %.8e", shader_opcode_names[ins->handler_idx],
+ ins->declaration.max_tessellation_factor);
+ break;
+
+ case VKD3DSIH_DCL_IMMEDIATE_CONSTANT_BUFFER:
+ shader_addline(buffer, "%s {\n", shader_opcode_names[ins->handler_idx]);
+ for (i = 0; i < ins->declaration.icb->vec4_count; ++i)
+ {
+ shader_addline(buffer, " {0x%08x, 0x%08x, 0x%08x, 0x%08x},\n",
+ ins->declaration.icb->data[4 * i + 0],
+ ins->declaration.icb->data[4 * i + 1],
+ ins->declaration.icb->data[4 * i + 2],
+ ins->declaration.icb->data[4 * i + 3]);
+ }
+ shader_addline(buffer, "}");
+ break;
+
+ case VKD3DSIH_DCL_INDEX_RANGE:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_dst_param(buffer, &ins->declaration.index_range.first_register, shader_version);
+ shader_addline(buffer, " %u", ins->declaration.index_range.last_register);
+ break;
+
+ case VKD3DSIH_DCL_INDEXABLE_TEMP:
+ shader_addline(buffer, "%s x[%u][%u], %u", shader_opcode_names[ins->handler_idx],
+ ins->declaration.indexable_temp.register_idx,
+ ins->declaration.indexable_temp.register_size,
+ ins->declaration.indexable_temp.component_count);
+ break;
+
+ case VKD3DSIH_DCL_INPUT_PS:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_interpolation_mode(buffer, ins->flags);
+ shader_addline(buffer, " ");
+ shader_dump_dst_param(buffer, &ins->declaration.dst, shader_version);
+ break;
+
+ case VKD3DSIH_DCL_INPUT_PS_SGV:
+ case VKD3DSIH_DCL_INPUT_SGV:
+ case VKD3DSIH_DCL_INPUT_SIV:
+ case VKD3DSIH_DCL_OUTPUT_SIV:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_dst_param(buffer, &ins->declaration.register_semantic.reg, shader_version);
+ shader_addline(buffer, ", ");
+ shader_dump_shader_input_sysval_semantic(buffer, ins->declaration.register_semantic.sysval_semantic);
+ break;
+
+ case VKD3DSIH_DCL_INPUT_PS_SIV:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_interpolation_mode(buffer, ins->flags);
+ shader_addline(buffer, " ");
+ shader_dump_dst_param(buffer, &ins->declaration.register_semantic.reg, shader_version);
+ shader_addline(buffer, ", ");
+ shader_dump_shader_input_sysval_semantic(buffer, ins->declaration.register_semantic.sysval_semantic);
+ break;
+
+ case VKD3DSIH_DCL_INPUT:
+ case VKD3DSIH_DCL_OUTPUT:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_dst_param(buffer, &ins->declaration.dst, shader_version);
+ break;
+
+ case VKD3DSIH_DCL_INPUT_PRIMITIVE:
+ case VKD3DSIH_DCL_OUTPUT_TOPOLOGY:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_primitive_type(buffer, &ins->declaration.primitive_type);
+ break;
+
+ case VKD3DSIH_DCL_INTERFACE:
+ shader_addline(buffer, "%s fp[%u][%u][%u] = {...}",
+ shader_opcode_names[ins->handler_idx], ins->declaration.fp.index,
+ ins->declaration.fp.array_size, ins->declaration.fp.body_count);
+ break;
+
+ case VKD3DSIH_DCL_RESOURCE_RAW:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_dst_param(buffer, &ins->declaration.dst, shader_version);
+ break;
+
+ case VKD3DSIH_DCL_RESOURCE_STRUCTURED:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_dst_param(buffer, &ins->declaration.structured_resource.reg, shader_version);
+ shader_addline(buffer, ", %u", ins->declaration.structured_resource.byte_stride);
+ break;
+
+ case VKD3DSIH_DCL_SAMPLER:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_dst_param(buffer, &ins->declaration.dst, shader_version);
+ if (ins->flags == VKD3DSI_SAMPLER_COMPARISON_MODE)
+ shader_addline(buffer, ", comparisonMode");
+ break;
+
+ case VKD3DSIH_DCL_TEMPS:
+ case VKD3DSIH_DCL_GS_INSTANCES:
+ case VKD3DSIH_DCL_HS_FORK_PHASE_INSTANCE_COUNT:
+ case VKD3DSIH_DCL_HS_JOIN_PHASE_INSTANCE_COUNT:
+ case VKD3DSIH_DCL_INPUT_CONTROL_POINT_COUNT:
+ case VKD3DSIH_DCL_OUTPUT_CONTROL_POINT_COUNT:
+ case VKD3DSIH_DCL_VERTICES_OUT:
+ shader_addline(buffer, "%s %u", shader_opcode_names[ins->handler_idx], ins->declaration.count);
+ break;
+
+ case VKD3DSIH_DCL_TESSELLATOR_DOMAIN:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_tessellator_domain(buffer, ins->declaration.tessellator_domain);
+ break;
+
+ case VKD3DSIH_DCL_TESSELLATOR_OUTPUT_PRIMITIVE:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_tessellator_output_primitive(buffer, ins->declaration.tessellator_output_primitive);
+ break;
+
+ case VKD3DSIH_DCL_TESSELLATOR_PARTITIONING:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_tessellator_partitioning(buffer, ins->declaration.tessellator_partitioning);
+ break;
+
+ case VKD3DSIH_DCL_TGSM_RAW:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_dst_param(buffer, &ins->declaration.tgsm_raw.reg, shader_version);
+ shader_addline(buffer, ", %u", ins->declaration.tgsm_raw.byte_count);
+ break;
+
+ case VKD3DSIH_DCL_TGSM_STRUCTURED:
+ shader_addline(buffer, "%s ", shader_opcode_names[ins->handler_idx]);
+ shader_dump_dst_param(buffer, &ins->declaration.tgsm_structured.reg, shader_version);
+ shader_addline(buffer, ", %u, %u", ins->declaration.tgsm_structured.byte_stride,
+ ins->declaration.tgsm_structured.structure_count);
+ break;
+
+ case VKD3DSIH_DCL_THREAD_GROUP:
+ shader_addline(buffer, "%s %u, %u, %u", shader_opcode_names[ins->handler_idx],
+ ins->declaration.thread_group_size.x,
+ ins->declaration.thread_group_size.y,
+ ins->declaration.thread_group_size.z);
+ break;
+
+ case VKD3DSIH_DCL_UAV_RAW:
+ shader_addline(buffer, "%s", shader_opcode_names[ins->handler_idx]);
+ shader_dump_uav_flags(buffer, ins->flags);
+ shader_addline(buffer, " ");
+ shader_dump_dst_param(buffer, &ins->declaration.dst, shader_version);
+ break;
+
+ case VKD3DSIH_DCL_UAV_STRUCTURED:
+ shader_addline(buffer, "%s", shader_opcode_names[ins->handler_idx]);
+ shader_dump_uav_flags(buffer, ins->flags);
+ shader_addline(buffer, " ");
+ shader_dump_dst_param(buffer, &ins->declaration.structured_resource.reg, shader_version);
+ shader_addline(buffer, ", %u", ins->declaration.structured_resource.byte_stride);
+ break;
+
+ case VKD3DSIH_DEF:
+ shader_addline(buffer, "def c%u = %.8e, %.8e, %.8e, %.8e",
+ shader_get_float_offset(ins->dst[0].reg.type, ins->dst[0].reg.idx[0].offset),
+ ins->src[0].reg.u.immconst_float[0], ins->src[0].reg.u.immconst_float[1],
+ ins->src[0].reg.u.immconst_float[2], ins->src[0].reg.u.immconst_float[3]);
+ break;
+
+ case VKD3DSIH_DEFI:
+ shader_addline(buffer, "defi i%u = %d, %d, %d, %d", ins->dst[0].reg.idx[0].offset,
+ ins->src[0].reg.u.immconst_uint[0], ins->src[0].reg.u.immconst_uint[1],
+ ins->src[0].reg.u.immconst_uint[2], ins->src[0].reg.u.immconst_uint[3]);
+ break;
+
+ case VKD3DSIH_DEFB:
+ shader_addline(buffer, "defb b%u = %s",
+ ins->dst[0].reg.idx[0].offset, ins->src[0].reg.u.immconst_uint[0] ? "true" : "false");
+ break;
+
+ default:
+ if (ins->predicate)
+ {
+ shader_addline(buffer, "(");
+ shader_dump_src_param(buffer, ins->predicate, shader_version);
+ shader_addline(buffer, ") ");
+ }
+
+ /* PixWin marks instructions with the coissue flag with a '+' */
+ if (ins->coissue)
+ shader_addline(buffer, "+");
+
+ shader_addline(buffer, "%s", shader_opcode_names[ins->handler_idx]);
+
+ shader_dump_instruction_flags(buffer, ins, shader_version);
+ if (vkd3d_shader_instruction_has_texel_offset(ins))
+ {
+ shader_addline(buffer, "(%d,%d,%d)",
+ ins->texel_offset.u, ins->texel_offset.v, ins->texel_offset.w);
+ }
+
+ for (i = 0; i < ins->dst_count; ++i)
+ {
+ shader_dump_ins_modifiers(buffer, &ins->dst[i]);
+ shader_addline(buffer, !i ? " " : ", ");
+ shader_dump_dst_param(buffer, &ins->dst[i], shader_version);
+ }
+
+ /* Other source tokens */
+ for (i = ins->dst_count; i < (ins->dst_count + ins->src_count); ++i)
+ {
+ shader_addline(buffer, !i ? " " : ", ");
+ shader_dump_src_param(buffer, &ins->src[i - ins->dst_count], shader_version);
+ }
+ break;
+ }
+
+ shader_addline(buffer, "\n");
+}
+
void vkd3d_shader_trace(void *data)
{
struct vkd3d_shader_version shader_version;
struct vkd3d_string_buffer buffer;
const char *p, *q;
const DWORD *ptr;
- DWORD i;
if (!string_buffer_init(&buffer))
{
@@ -1369,240 +1616,7 @@ void vkd3d_shader_trace(void *data)
continue;
}
- if (ins.handler_idx == VKD3DSIH_DCL || ins.handler_idx == VKD3DSIH_DCL_UAV_TYPED)
- {
- shader_dump_decl_usage(&buffer, &ins.declaration.semantic, ins.flags, &shader_version);
- shader_dump_ins_modifiers(&buffer, &ins.declaration.semantic.reg);
- shader_addline(&buffer, " ");
- shader_dump_dst_param(&buffer, &ins.declaration.semantic.reg, &shader_version);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_CONSTANT_BUFFER)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_src_param(&buffer, &ins.declaration.src, &shader_version);
- shader_addline(&buffer, ", %s",
- ins.flags & VKD3DSI_INDEXED_DYNAMIC ? "dynamicIndexed" : "immediateIndexed");
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_FUNCTION_BODY)
- {
- shader_addline(&buffer, "%s fb%u",
- shader_opcode_names[ins.handler_idx], ins.declaration.index);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_FUNCTION_TABLE)
- {
- shader_addline(&buffer, "%s ft%u = {...}",
- shader_opcode_names[ins.handler_idx], ins.declaration.index);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_GLOBAL_FLAGS)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_global_flags(&buffer, ins.flags);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_HS_MAX_TESSFACTOR)
- {
- shader_addline(&buffer, "%s %.8e", shader_opcode_names[ins.handler_idx],
- ins.declaration.max_tessellation_factor);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_IMMEDIATE_CONSTANT_BUFFER)
- {
- shader_addline(&buffer, "%s {\n", shader_opcode_names[ins.handler_idx]);
- for (i = 0; i < ins.declaration.icb->vec4_count; ++i)
- {
- shader_addline(&buffer, " {0x%08x, 0x%08x, 0x%08x, 0x%08x},\n",
- ins.declaration.icb->data[4 * i + 0],
- ins.declaration.icb->data[4 * i + 1],
- ins.declaration.icb->data[4 * i + 2],
- ins.declaration.icb->data[4 * i + 3]);
- }
- shader_addline(&buffer, "}");
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_INDEX_RANGE)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_dst_param(&buffer, &ins.declaration.index_range.first_register, &shader_version);
- shader_addline(&buffer, " %u", ins.declaration.index_range.last_register);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_INDEXABLE_TEMP)
- {
- shader_addline(&buffer, "%s x[%u][%u], %u", shader_opcode_names[ins.handler_idx],
- ins.declaration.indexable_temp.register_idx,
- ins.declaration.indexable_temp.register_size,
- ins.declaration.indexable_temp.component_count);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_INPUT_PS)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_interpolation_mode(&buffer, ins.flags);
- shader_addline(&buffer, " ");
- shader_dump_dst_param(&buffer, &ins.declaration.dst, &shader_version);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_INPUT_PS_SGV
- || ins.handler_idx == VKD3DSIH_DCL_INPUT_SGV
- || ins.handler_idx == VKD3DSIH_DCL_INPUT_SIV
- || ins.handler_idx == VKD3DSIH_DCL_OUTPUT_SIV)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_dst_param(&buffer, &ins.declaration.register_semantic.reg, &shader_version);
- shader_addline(&buffer, ", ");
- shader_dump_shader_input_sysval_semantic(&buffer, ins.declaration.register_semantic.sysval_semantic);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_INPUT_PS_SIV)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_interpolation_mode(&buffer, ins.flags);
- shader_addline(&buffer, " ");
- shader_dump_dst_param(&buffer, &ins.declaration.register_semantic.reg, &shader_version);
- shader_addline(&buffer, ", ");
- shader_dump_shader_input_sysval_semantic(&buffer, ins.declaration.register_semantic.sysval_semantic);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_INPUT
- || ins.handler_idx == VKD3DSIH_DCL_OUTPUT)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_dst_param(&buffer, &ins.declaration.dst, &shader_version);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_INPUT_PRIMITIVE
- || ins.handler_idx == VKD3DSIH_DCL_OUTPUT_TOPOLOGY)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_primitive_type(&buffer, &ins.declaration.primitive_type);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_INTERFACE)
- {
- shader_addline(&buffer, "%s fp[%u][%u][%u] = {...}",
- shader_opcode_names[ins.handler_idx], ins.declaration.fp.index,
- ins.declaration.fp.array_size, ins.declaration.fp.body_count);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_RESOURCE_RAW)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_dst_param(&buffer, &ins.declaration.dst, &shader_version);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_RESOURCE_STRUCTURED)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_dst_param(&buffer, &ins.declaration.structured_resource.reg, &shader_version);
- shader_addline(&buffer, ", %u", ins.declaration.structured_resource.byte_stride);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_SAMPLER)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_dst_param(&buffer, &ins.declaration.dst, &shader_version);
- if (ins.flags == VKD3DSI_SAMPLER_COMPARISON_MODE)
- shader_addline(&buffer, ", comparisonMode");
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_TEMPS
- || ins.handler_idx == VKD3DSIH_DCL_GS_INSTANCES
- || ins.handler_idx == VKD3DSIH_DCL_HS_FORK_PHASE_INSTANCE_COUNT
- || ins.handler_idx == VKD3DSIH_DCL_HS_JOIN_PHASE_INSTANCE_COUNT
- || ins.handler_idx == VKD3DSIH_DCL_INPUT_CONTROL_POINT_COUNT
- || ins.handler_idx == VKD3DSIH_DCL_OUTPUT_CONTROL_POINT_COUNT
- || ins.handler_idx == VKD3DSIH_DCL_VERTICES_OUT)
- {
- shader_addline(&buffer, "%s %u", shader_opcode_names[ins.handler_idx], ins.declaration.count);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_TESSELLATOR_DOMAIN)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_tessellator_domain(&buffer, ins.declaration.tessellator_domain);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_TESSELLATOR_OUTPUT_PRIMITIVE)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_tessellator_output_primitive(&buffer, ins.declaration.tessellator_output_primitive);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_TESSELLATOR_PARTITIONING)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_tessellator_partitioning(&buffer, ins.declaration.tessellator_partitioning);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_TGSM_RAW)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_dst_param(&buffer, &ins.declaration.tgsm_raw.reg, &shader_version);
- shader_addline(&buffer, ", %u", ins.declaration.tgsm_raw.byte_count);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_TGSM_STRUCTURED)
- {
- shader_addline(&buffer, "%s ", shader_opcode_names[ins.handler_idx]);
- shader_dump_dst_param(&buffer, &ins.declaration.tgsm_structured.reg, &shader_version);
- shader_addline(&buffer, ", %u, %u", ins.declaration.tgsm_structured.byte_stride,
- ins.declaration.tgsm_structured.structure_count);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_THREAD_GROUP)
- {
- shader_addline(&buffer, "%s %u, %u, %u", shader_opcode_names[ins.handler_idx],
- ins.declaration.thread_group_size.x,
- ins.declaration.thread_group_size.y,
- ins.declaration.thread_group_size.z);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_UAV_RAW)
- {
- shader_addline(&buffer, "%s", shader_opcode_names[ins.handler_idx]);
- shader_dump_uav_flags(&buffer, ins.flags);
- shader_addline(&buffer, " ");
- shader_dump_dst_param(&buffer, &ins.declaration.dst, &shader_version);
- }
- else if (ins.handler_idx == VKD3DSIH_DCL_UAV_STRUCTURED)
- {
- shader_addline(&buffer, "%s", shader_opcode_names[ins.handler_idx]);
- shader_dump_uav_flags(&buffer, ins.flags);
- shader_addline(&buffer, " ");
- shader_dump_dst_param(&buffer, &ins.declaration.structured_resource.reg, &shader_version);
- shader_addline(&buffer, ", %u", ins.declaration.structured_resource.byte_stride);
- }
- else if (ins.handler_idx == VKD3DSIH_DEF)
- {
- shader_addline(&buffer, "def c%u = %.8e, %.8e, %.8e, %.8e",
- shader_get_float_offset(ins.dst[0].reg.type, ins.dst[0].reg.idx[0].offset),
- ins.src[0].reg.u.immconst_float[0], ins.src[0].reg.u.immconst_float[1],
- ins.src[0].reg.u.immconst_float[2], ins.src[0].reg.u.immconst_float[3]);
- }
- else if (ins.handler_idx == VKD3DSIH_DEFI)
- {
- shader_addline(&buffer, "defi i%u = %d, %d, %d, %d", ins.dst[0].reg.idx[0].offset,
- ins.src[0].reg.u.immconst_uint[0], ins.src[0].reg.u.immconst_uint[1],
- ins.src[0].reg.u.immconst_uint[2], ins.src[0].reg.u.immconst_uint[3]);
- }
- else if (ins.handler_idx == VKD3DSIH_DEFB)
- {
- shader_addline(&buffer, "defb b%u = %s",
- ins.dst[0].reg.idx[0].offset, ins.src[0].reg.u.immconst_uint[0] ? "true" : "false");
- }
- else
- {
- if (ins.predicate)
- {
- shader_addline(&buffer, "(");
- shader_dump_src_param(&buffer, ins.predicate, &shader_version);
- shader_addline(&buffer, ") ");
- }
-
- /* PixWin marks instructions with the coissue flag with a '+' */
- if (ins.coissue)
- shader_addline(&buffer, "+");
-
- shader_addline(&buffer, "%s", shader_opcode_names[ins.handler_idx]);
-
- shader_dump_instruction_flags(&buffer, &ins, &shader_version);
- if (vkd3d_shader_instruction_has_texel_offset(&ins))
- shader_addline(&buffer, "(%d,%d,%d)", ins.texel_offset.u, ins.texel_offset.v, ins.texel_offset.w);
-
- for (i = 0; i < ins.dst_count; ++i)
- {
- shader_dump_ins_modifiers(&buffer, &ins.dst[i]);
- shader_addline(&buffer, !i ? " " : ", ");
- shader_dump_dst_param(&buffer, &ins.dst[i], &shader_version);
- }
-
- /* Other source tokens */
- for (i = ins.dst_count; i < (ins.dst_count + ins.src_count); ++i)
- {
- shader_addline(&buffer, !i ? " " : ", ");
- shader_dump_src_param(&buffer, &ins.src[i - ins.dst_count], &shader_version);
- }
- }
- shader_addline(&buffer, "\n");
+ shader_dump_instruction(&buffer, &ins, &shader_version);
}
for (p = buffer.buffer; *p; p = q)
--
2.16.4
June 5, 2018
[PATCH vkd3d 2/4] libs/vkd3d-shader: Factor out shader_dump_instruction_flags().
by Józef Kucia
From: Józef Kucia <jkucia(a)codeweavers.com>
Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com>
---
libs/vkd3d-shader/trace.c | 126 ++++++++++++++++---------------
libs/vkd3d-shader/vkd3d_shader_private.h | 12 +--
2 files changed, 73 insertions(+), 65 deletions(-)
diff --git a/libs/vkd3d-shader/trace.c b/libs/vkd3d-shader/trace.c
index ce8db46b6f21..f987e3caa877 100644
--- a/libs/vkd3d-shader/trace.c
+++ b/libs/vkd3d-shader/trace.c
@@ -1274,6 +1274,72 @@ static void shader_dump_version(struct vkd3d_string_buffer *buffer,
shader_addline(buffer, "%s_%u_%u\n", prefix, shader_version->major, shader_version->minor);
}
+static void shader_dump_instruction_flags(struct vkd3d_string_buffer *buffer,
+ const struct vkd3d_shader_instruction *ins, const struct vkd3d_shader_version *shader_version)
+{
+ switch (ins->handler_idx)
+ {
+ case VKD3DSIH_BREAKP:
+ case VKD3DSIH_CONTINUEP:
+ case VKD3DSIH_IF:
+ case VKD3DSIH_RETP:
+ case VKD3DSIH_TEXKILL:
+ switch (ins->flags)
+ {
+ case VKD3D_SHADER_CONDITIONAL_OP_NZ: shader_addline(buffer, "_nz"); break;
+ case VKD3D_SHADER_CONDITIONAL_OP_Z: shader_addline(buffer, "_z"); break;
+ default: shader_addline(buffer, "_unrecognized(%#x)", ins->flags); break;
+ }
+ break;
+
+ case VKD3DSIH_IFC:
+ case VKD3DSIH_BREAKC:
+ switch (ins->flags)
+ {
+ case VKD3D_SHADER_REL_OP_GT: shader_addline(buffer, "_gt"); break;
+ case VKD3D_SHADER_REL_OP_EQ: shader_addline(buffer, "_eq"); break;
+ case VKD3D_SHADER_REL_OP_GE: shader_addline(buffer, "_ge"); break;
+ case VKD3D_SHADER_REL_OP_LT: shader_addline(buffer, "_lt"); break;
+ case VKD3D_SHADER_REL_OP_NE: shader_addline(buffer, "_ne"); break;
+ case VKD3D_SHADER_REL_OP_LE: shader_addline(buffer, "_le"); break;
+ default: shader_addline(buffer, "_(%u)", ins->flags);
+ }
+ break;
+
+ case VKD3DSIH_RESINFO:
+ switch (ins->flags)
+ {
+ case VKD3DSI_NONE: break;
+ case VKD3DSI_RESINFO_RCP_FLOAT: shader_addline(buffer, "_rcpFloat"); break;
+ case VKD3DSI_RESINFO_UINT: shader_addline(buffer, "_uint"); break;
+ default: shader_addline(buffer, "_unrecognized(%#x)", ins->flags);
+ }
+ break;
+
+ case VKD3DSIH_SAMPLE_INFO:
+ switch (ins->flags)
+ {
+ case VKD3DSI_NONE: break;
+ case VKD3DSI_SAMPLE_INFO_UINT: shader_addline(buffer, "_uint"); break;
+ default: shader_addline(buffer, "_unrecognized(%#x)", ins->flags);
+ }
+ break;
+
+ case VKD3DSIH_SYNC:
+ shader_dump_sync_flags(buffer, ins->flags);
+ break;
+
+ case VKD3DSIH_TEX:
+ if (shader_version->major >= 2 && (ins->flags & VKD3DSI_TEXLD_PROJECT))
+ shader_addline(buffer, "p");
+ break;
+
+ default:
+ shader_dump_precise_flags(buffer, ins->flags);
+ break;
+ }
+}
+
void vkd3d_shader_trace(void *data)
{
struct vkd3d_shader_version shader_version;
@@ -1518,65 +1584,7 @@ void vkd3d_shader_trace(void *data)
shader_addline(&buffer, "%s", shader_opcode_names[ins.handler_idx]);
- if (ins.handler_idx == VKD3DSIH_BREAKP
- || ins.handler_idx == VKD3DSIH_CONTINUEP
- || ins.handler_idx == VKD3DSIH_IF
- || ins.handler_idx == VKD3DSIH_RETP
- || ins.handler_idx == VKD3DSIH_TEXKILL)
- {
- switch (ins.flags)
- {
- case VKD3D_SHADER_CONDITIONAL_OP_NZ: shader_addline(&buffer, "_nz"); break;
- case VKD3D_SHADER_CONDITIONAL_OP_Z: shader_addline(&buffer, "_z"); break;
- default: shader_addline(&buffer, "_unrecognized(%#x)", ins.flags); break;
- }
- }
- else if (ins.handler_idx == VKD3DSIH_IFC
- || ins.handler_idx == VKD3DSIH_BREAKC)
- {
- switch (ins.flags)
- {
- case VKD3D_SHADER_REL_OP_GT: shader_addline(&buffer, "_gt"); break;
- case VKD3D_SHADER_REL_OP_EQ: shader_addline(&buffer, "_eq"); break;
- case VKD3D_SHADER_REL_OP_GE: shader_addline(&buffer, "_ge"); break;
- case VKD3D_SHADER_REL_OP_LT: shader_addline(&buffer, "_lt"); break;
- case VKD3D_SHADER_REL_OP_NE: shader_addline(&buffer, "_ne"); break;
- case VKD3D_SHADER_REL_OP_LE: shader_addline(&buffer, "_le"); break;
- default: shader_addline(&buffer, "_(%u)", ins.flags);
- }
- }
- else if (ins.handler_idx == VKD3DSIH_TEX
- && shader_version.major >= 2
- && (ins.flags & VKD3DSI_TEXLD_PROJECT))
- {
- shader_addline(&buffer, "p");
- }
- else if (ins.handler_idx == VKD3DSIH_RESINFO && ins.flags)
- {
- switch (ins.flags)
- {
- case VKD3DSI_RESINFO_RCP_FLOAT: shader_addline(&buffer, "_rcpFloat"); break;
- case VKD3DSI_RESINFO_UINT: shader_addline(&buffer, "_uint"); break;
- default: shader_addline(&buffer, "_unrecognized(%#x)", ins.flags);
- }
- }
- else if (ins.handler_idx == VKD3DSIH_SAMPLE_INFO && ins.flags)
- {
- switch (ins.flags)
- {
- case VKD3DSI_SAMPLE_INFO_UINT: shader_addline(&buffer, "_uint"); break;
- default: shader_addline(&buffer, "_unrecognized(%#x)", ins.flags);
- }
- }
- else if (ins.handler_idx == VKD3DSIH_SYNC)
- {
- shader_dump_sync_flags(&buffer, ins.flags);
- }
- else
- {
- shader_dump_precise_flags(&buffer, ins.flags);
- }
-
+ shader_dump_instruction_flags(&buffer, &ins, &shader_version);
if (vkd3d_shader_instruction_has_texel_offset(&ins))
shader_addline(&buffer, "(%d,%d,%d)", ins.texel_offset.u, ins.texel_offset.v, ins.texel_offset.w);
diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h
index 8ed700be3756..7fc42627f820 100644
--- a/libs/vkd3d-shader/vkd3d_shader_private.h
+++ b/libs/vkd3d-shader/vkd3d_shader_private.h
@@ -480,12 +480,12 @@ enum vkd3d_tessellator_partitioning
};
-#define VKD3DSI_TEXLD_PROJECT 0x1
-
-#define VKD3DSI_INDEXED_DYNAMIC 0x4
-#define VKD3DSI_RESINFO_RCP_FLOAT 0x1
-#define VKD3DSI_RESINFO_UINT 0x2
-#define VKD3DSI_SAMPLE_INFO_UINT 0x1
+#define VKD3DSI_NONE 0x0
+#define VKD3DSI_TEXLD_PROJECT 0x1
+#define VKD3DSI_INDEXED_DYNAMIC 0x4
+#define VKD3DSI_RESINFO_RCP_FLOAT 0x1
+#define VKD3DSI_RESINFO_UINT 0x2
+#define VKD3DSI_SAMPLE_INFO_UINT 0x1
#define VKD3DSI_SAMPLER_COMPARISON_MODE 0x1
#define VKD3DSI_PRECISE_X 0x100
--
2.16.4
June 5, 2018
[PATCH vkd3d 1/4] libs/vkd3d-shader: Factor out shader_dump_version().
by Józef Kucia
From: Józef Kucia <jkucia(a)codeweavers.com>
Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com>
---
libs/vkd3d-shader/trace.c | 58 +++++++++++++++++++++++++----------------------
1 file changed, 31 insertions(+), 27 deletions(-)
diff --git a/libs/vkd3d-shader/trace.c b/libs/vkd3d-shader/trace.c
index faa009e03a4c..ce8db46b6f21 100644
--- a/libs/vkd3d-shader/trace.c
+++ b/libs/vkd3d-shader/trace.c
@@ -1234,58 +1234,62 @@ static void shader_dump_interpolation_mode(struct vkd3d_string_buffer *buffer,
}
}
-void vkd3d_shader_trace(void *data)
+static void shader_dump_version(struct vkd3d_string_buffer *buffer,
+ const struct vkd3d_shader_version *shader_version)
{
- struct vkd3d_shader_version shader_version;
- struct vkd3d_string_buffer buffer;
- const char *type_prefix;
- const char *p, *q;
- const DWORD *ptr;
- DWORD i;
+ const char *prefix;
- if (!string_buffer_init(&buffer))
- {
- ERR("Failed to initialize string buffer.\n");
- return;
- }
-
- shader_sm4_read_header(data, &ptr, &shader_version);
-
- TRACE("Parsing %p.\n", ptr);
-
- switch (shader_version.type)
+ switch (shader_version->type)
{
case VKD3D_SHADER_TYPE_VERTEX:
- type_prefix = "vs";
+ prefix = "vs";
break;
case VKD3D_SHADER_TYPE_HULL:
- type_prefix = "hs";
+ prefix = "hs";
break;
case VKD3D_SHADER_TYPE_DOMAIN:
- type_prefix = "ds";
+ prefix = "ds";
break;
case VKD3D_SHADER_TYPE_GEOMETRY:
- type_prefix = "gs";
+ prefix = "gs";
break;
case VKD3D_SHADER_TYPE_PIXEL:
- type_prefix = "ps";
+ prefix = "ps";
break;
case VKD3D_SHADER_TYPE_COMPUTE:
- type_prefix = "cs";
+ prefix = "cs";
break;
default:
- FIXME("Unhandled shader type %#x.\n", shader_version.type);
- type_prefix = "unknown";
+ FIXME("Unhandled shader type %#x.\n", shader_version->type);
+ prefix = "unknown";
break;
}
- shader_addline(&buffer, "%s_%u_%u\n", type_prefix, shader_version.major, shader_version.minor);
+ shader_addline(buffer, "%s_%u_%u\n", prefix, shader_version->major, shader_version->minor);
+}
+
+void vkd3d_shader_trace(void *data)
+{
+ struct vkd3d_shader_version shader_version;
+ struct vkd3d_string_buffer buffer;
+ const char *p, *q;
+ const DWORD *ptr;
+ DWORD i;
+
+ if (!string_buffer_init(&buffer))
+ {
+ ERR("Failed to initialize string buffer.\n");
+ return;
+ }
+
+ shader_sm4_read_header(data, &ptr, &shader_version);
+ shader_dump_version(&buffer, &shader_version);
while (!shader_sm4_is_end(data, &ptr))
{
--
2.16.4
June 5, 2018
Re: [PATCH] ole32/tests: Fix MSVC build.
by Thomas Faber
On 2018-06-05 13:28, Dmitry Timoshkov wrote:
> Thomas Faber <thomas.faber(a)reactos.org> wrote:
>
>> - struct host_object_data object_data = { NULL, IID_IOleClientSite, (IUnknown*)&Test_OleClientSite,
>> + struct host_object_data object_data = { NULL, GUID_MEMBERS(IID_IOleClientSite), (IUnknown*)&Test_OleClientSite,
>> MSHLFLAGS_NORMAL, NULL, (IUnknown*)&PSFactoryBuffer,
>> - CLSID_WineTestPSFactoryBuffer };
>> + GUID_MEMBERS(CLSID_WineTestPSFactoryBuffer) };
>
> Did you consider pass GUID by reference instead?
I had not. But looking at the code, that indeed makes sense.
I'll send the other version too, so Huw/Alexandre can pick whichever
they prefer.
Thanks!
-Thomas
June 5, 2018
[PATCH v2] ole32/tests: Fix MSVC build.
by Thomas Faber
Signed-off-by: Thomas Faber <thomas.faber(a)reactos.org>
---
v2: Add change in start_host_object that I missed the first time.
dlls/ole32/tests/marshal.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/dlls/ole32/tests/marshal.c b/dlls/ole32/tests/marshal.c
index 42049032196..ba4b68a9970 100644
--- a/dlls/ole32/tests/marshal.c
+++ b/dlls/ole32/tests/marshal.c
@@ -60,6 +60,8 @@
expect_ ## func = called_ ## func = FALSE; \
}while(0)
+#define GUID_MEMBERS(g) {(g).Data1, (g).Data2, (g).Data3, {(g).Data4[0], (g).Data4[1], (g).Data4[2], (g).Data4[3], (g).Data4[4], (g).Data4[5], (g).Data4[6], (g).Data4[7]}}
+
DEFINE_GUID(CLSID_StdGlobalInterfaceTable,0x00000323,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
DEFINE_GUID(CLSID_ManualResetEvent, 0x0000032c,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
@@ -639,7 +641,7 @@ static DWORD start_host_object2(struct host_object_data *object_data, HANDLE *th
static DWORD start_host_object(IStream *stream, REFIID riid, IUnknown *object, MSHLFLAGS marshal_flags, HANDLE *thread)
{
- struct host_object_data object_data = { stream, *riid, object, marshal_flags };
+ struct host_object_data object_data = { stream, GUID_MEMBERS(*riid), object, marshal_flags };
return start_host_object2(&object_data, thread);
}
@@ -1254,9 +1256,9 @@ static void test_marshal_channel_buffer(void)
HANDLE thread;
HRESULT hr;
- struct host_object_data object_data = { NULL, IID_IOleClientSite, (IUnknown*)&Test_OleClientSite,
+ struct host_object_data object_data = { NULL, GUID_MEMBERS(IID_IOleClientSite), (IUnknown*)&Test_OleClientSite,
MSHLFLAGS_NORMAL, NULL, (IUnknown*)&PSFactoryBuffer,
- CLSID_WineTestPSFactoryBuffer };
+ GUID_MEMBERS(CLSID_WineTestPSFactoryBuffer) };
cLocks = 0;
external_connections = 0;
@@ -2321,7 +2323,7 @@ static void test_message_filter(void)
IMessageFilter *prev_filter = NULL;
HANDLE thread;
- struct host_object_data object_data = { NULL, IID_IClassFactory, (IUnknown*)&Test_ClassFactory,
+ struct host_object_data object_data = { NULL, GUID_MEMBERS(IID_IClassFactory), (IUnknown*)&Test_ClassFactory,
MSHLFLAGS_NORMAL, &MessageFilter };
cLocks = 0;
@@ -4213,7 +4215,7 @@ static void test_channel_hook(void)
HANDLE thread;
HRESULT hr;
- struct host_object_data object_data = { NULL, IID_IClassFactory, (IUnknown*)&Test_ClassFactory,
+ struct host_object_data object_data = { NULL, GUID_MEMBERS(IID_IClassFactory), (IUnknown*)&Test_ClassFactory,
MSHLFLAGS_NORMAL, &MessageFilter };
hr = CoRegisterChannelHook(&EXTENTID_WineTest, &TestChannelHook);
--
2.16.1.windows.2
June 5, 2018
Re: [PATCH 1/5] wined3d: Slightly improve formatting of generated GLSL shader interfaces.
by Henri Verbeet
Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com>
June 5, 2018
Re: [PATCH 4/5] wined3d: Compare interpolation mode VS compilation arguments.
by Henri Verbeet
Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com>
June 5, 2018