Module: vkd3d
Branch: master
Commit: 7eb63a7c0d23a83bbdfcfa5ed83b943437051138
URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/7eb63a7c0d23a83bbdfcfa5ed83b9…
Author: Giovanni Mascellani <gmascellani(a)codeweavers.com>
Date: Wed Jul 17 15:14:26 2024 +0200
vkd3d: Document how to install "Graphics Tools" to use the Agility SDK.
This is a required step, otherwise the debug layer will not work.
---
README | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/README b/README
index 86a2bf2e..f6ded1cd 100644
--- a/README
+++ b/README
@@ -134,6 +134,10 @@ these steps:
[1] https://devblogs.microsoft.com/directx/directx12agility/
+ * You also need to enable the "Graphics Tools" optional feature in Windows.
+ Open the "Settings" applications, then look for "Apps", "Optional features",
+ "View features" and install "Graphics Tools".
+
* Configure vkd3d with something like:
'CROSSCC64="x86_64-w64-mingw32-gcc -DVKD3D_AGILITY_SDK_VERSION=<version>"',
as well as the equivalent CROSSCC32 variable for the 32-bit
Module: vkd3d
Branch: master
Commit: 7e557420b17cbf8b46153711813e2e872562ec58
URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/7e557420b17cbf8b46153711813e2…
Author: Giovanni Mascellani <gmascellani(a)codeweavers.com>
Date: Wed Jul 17 14:55:07 2024 +0200
tests: Terminate the Agility SDK path with a slash.
That's what the documentation recommends. It used to work for me without
the slash, but maybe they changed something in recent versions.
---
README | 2 +-
tests/d3d12_crosstest.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/README b/README
index a3fcedde..86a2bf2e 100644
--- a/README
+++ b/README
@@ -153,4 +153,4 @@ these steps:
* It's also possible to use '-DVKD3D_AGILITY_SDK_PATH=/path/to/sdk/' to
specify the directory to load the Agility SDK DLLs from at runtime.
If relative, the path is intended to be relative to the executable
- path. If unspecified the path defaults to '.'.
+ path. If unspecified the path defaults to './'.
diff --git a/tests/d3d12_crosstest.h b/tests/d3d12_crosstest.h
index 8388a7a7..b42696a8 100644
--- a/tests/d3d12_crosstest.h
+++ b/tests/d3d12_crosstest.h
@@ -268,7 +268,7 @@ static void wait_queue_idle_(unsigned int line, ID3D12Device *device, ID3D12Comm
VKD3D_EXPORT const char *D3D12SDKPath = VKD3D_EXPAND_AND_STRINGIFY(VKD3D_AGILITY_SDK_PATH);
# else
# define VKD3D_AGILITY_SDK_EXPORT_PATH \
- VKD3D_EXPORT const char *D3D12SDKPath = ".";
+ VKD3D_EXPORT const char *D3D12SDKPath = "./";
# endif
# define VKD3D_AGILITY_SDK_EXPORTS \
VKD3D_AGILITY_SDK_EXPORT_VERSION \
Module: wine
Branch: master
Commit: 88a28aa5757ae74d9997b470d70216f10974247f
URL: https://gitlab.winehq.org/wine/wine/-/commit/88a28aa5757ae74d9997b470d70216…
Author: Eric Pouech <epouech(a)codeweavers.com>
Date: Tue Jun 18 16:57:51 2024 +0200
include/mscvpdb.h: Use flexible array members for the rest of structures.
Removing the migration helpers.
Adding some documentation bits.
Signed-off-by: Eric Pouech <epouech(a)codeweavers.com>
---
dlls/dbghelp/msc.c | 16 +++++++---------
include/wine/mscvpdb.h | 17 +++++++++++------
2 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/dlls/dbghelp/msc.c b/dlls/dbghelp/msc.c
index 73d5a8e23f4..6250061296e 100644
--- a/dlls/dbghelp/msc.c
+++ b/dlls/dbghelp/msc.c
@@ -269,9 +269,7 @@ static void codeview_init_basic_types(struct module* module)
cv_basic_types[T_PUINT8] = &symt_new_pointer(module, cv_basic_types[T_UINT8], ptrsz)->symt;
}
-/* wrapper for migration to FAM */
-#define leaf_as_variant(v, l) _leaf_as_variant((v), (const unsigned char*)(l))
-static int _leaf_as_variant(VARIANT *v, const unsigned char *leaf)
+static int leaf_as_variant(VARIANT *v, const unsigned char *leaf)
{
unsigned short int type = *(const unsigned short *)leaf;
int length = 2;
@@ -397,9 +395,7 @@ static int _leaf_as_variant(VARIANT *v, const unsigned char *leaf)
return length;
}
-/* wrapper for migration to FAM */
-#define numeric_leaf(v, l) _numeric_leaf(v, (const unsigned char *)(l))
-static int _numeric_leaf(int *value, const unsigned char *leaf)
+static int numeric_leaf(int *value, const unsigned char *leaf)
{
unsigned short int type = *(const unsigned short int *)leaf;
int length = 2;
@@ -1581,6 +1577,7 @@ static void codeview_snarf_linetab(const struct msc_debug_info* msc_dbg, const B
unsigned int k;
const unsigned int* filetab;
const unsigned int* lt_ptr;
+ const unsigned int* offsets;
const unsigned short* linenos;
const struct startend* start;
unsigned source;
@@ -1609,13 +1606,14 @@ static void codeview_snarf_linetab(const struct msc_debug_info* msc_dbg, const B
for (j = 0; j < nseg; j++)
{
ltb = (const struct codeview_linetab_block*)(linetab + *lt_ptr++);
- linenos = (const unsigned short*)<b->offsets[ltb->num_lines];
+ offsets = (const unsigned int*)<b->data;
+ linenos = (const unsigned short*)&offsets[ltb->num_lines];
func_addr0 = codeview_get_address(msc_dbg, ltb->seg, start[j].start);
if (!func_addr0) continue;
for (func = NULL, k = 0; k < ltb->num_lines; k++)
{
/* now locate function (if any) */
- addr = func_addr0 + ltb->offsets[k] - start[j].start;
+ addr = func_addr0 + offsets[k] - start[j].start;
/* unfortunately, we can have several functions in the same block, if there's no
* gap between them... find the new function if needed
*/
@@ -1626,7 +1624,7 @@ static void codeview_snarf_linetab(const struct msc_debug_info* msc_dbg, const B
if (!symt_check_tag(&func->symt, SymTagFunction) && !symt_check_tag(&func->symt, SymTagInlineSite))
{
WARN("--not a func at %04x:%08x %Ix tag=%d\n",
- ltb->seg, ltb->offsets[k], addr, func ? func->symt.tag : -1);
+ ltb->seg, offsets[k], addr, func ? func->symt.tag : -1);
func = NULL;
break;
}
diff --git a/include/wine/mscvpdb.h b/include/wine/mscvpdb.h
index 560d3cc08d6..d389d5d22d0 100644
--- a/include/wine/mscvpdb.h
+++ b/include/wine/mscvpdb.h
@@ -83,10 +83,11 @@
* symbol size (to be greater than 256), which was likely needed for
* complex C++ types (nested + templates).
*
- * It's somehow difficult to represent the layout of those types on
- * disk because:
- * - some integral values are stored as numeric leaf, which size is
- * variable depending on its value
+ * It's not possible to represent some disk layout with C structures
+ * as there are several contiguous entries of variable length.
+ * Of example of them is called 'numeric leaf' and represent several
+ * leaf values (integers, reals...).
+ * All of these contiguous values are packed in a flexible array member.
*
* Symbols internal stream
* -----------------------
@@ -101,6 +102,9 @@
* Internal types
* ======================================== */
+/* First versions (v1, v2) of CV data is stored as Pascal strings.
+ * Third version uses C string instead.
+ */
struct p_string
{
unsigned char namelen;
@@ -2342,8 +2346,9 @@ struct codeview_linetab_block
{
unsigned short seg;
unsigned short num_lines;
- unsigned int offsets[1]; /* in fact num_lines */
-/* unsigned short linenos[]; */
+ unsigned char data[];
+ /* unsigned int offsets[num_lines]; */
+ /* unsigned short linenos[]; */
};
struct startend