mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
tests: Support using the Agility SDK in the crosstests.
This commit is contained in:
parent
c49daadce1
commit
4f67675a51
Notes:
Henri Verbeet
2024-07-09 20:53:44 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Conor McCarthy (@cmccarthy) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/853
43
README
43
README
@ -111,3 +111,46 @@ to submit their patches using the merge request tool.
|
|||||||
|
|
||||||
Each merge request is automatically tested with the GitLab CI
|
Each merge request is automatically tested with the GitLab CI
|
||||||
system. See gitlab/README in the Git tree for more details.
|
system. See gitlab/README in the Git tree for more details.
|
||||||
|
|
||||||
|
============================
|
||||||
|
Testing with the Agility SDK
|
||||||
|
============================
|
||||||
|
|
||||||
|
Traditionally Microsoft have released the Direct3D 12 development files,
|
||||||
|
including the debug layer runtime, as part of the larger Windows SDK.
|
||||||
|
In 2021 the DirectX 12 Agility SDK was introduced, which may be updated
|
||||||
|
independently of the Windows SDK. If you plan to run the vkd3d
|
||||||
|
crosstests with Microsoft's debug layer you might want to get it from
|
||||||
|
the Agility SDK, both because it's probably going to be more up-to-date
|
||||||
|
and because the Agility SDK is a couple dozens of megabytes versus the
|
||||||
|
gigabytes of the Windows SDK.
|
||||||
|
|
||||||
|
In order to build the vkd3d crosstests with Agility SDK support, follow
|
||||||
|
these steps:
|
||||||
|
|
||||||
|
* The Agility SDK is distributed at [1]: select your preferred
|
||||||
|
version (likely the most recent one) and note the number in column
|
||||||
|
D3D12SDKVersion, which you're going to need later.
|
||||||
|
|
||||||
|
[1] https://devblogs.microsoft.com/directx/directx12agility/
|
||||||
|
|
||||||
|
* 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
|
||||||
|
crosstests. You'll have to replace '<version>' with the
|
||||||
|
D3D12SDKVersion number you noted above. Then build the crosstests
|
||||||
|
with 'make crosstest' as usual.
|
||||||
|
|
||||||
|
* Download the Agility SDK NuGet package, which is essentially a ZIP
|
||||||
|
file with a .nupkg extension. Extract d3d12core.dll and
|
||||||
|
d3d12sdklayers.dll for your architecture, and put them in the
|
||||||
|
directory containing the crosstest executables.
|
||||||
|
|
||||||
|
* Now you can run the crosstests, possibly with arguments
|
||||||
|
'--validate' and '--gbv' to enable the debug layers. They will use
|
||||||
|
the runtime from the Agility SDK.
|
||||||
|
|
||||||
|
* 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 '.'.
|
||||||
|
@ -52,6 +52,10 @@
|
|||||||
((uint32_t)(ch0) | ((uint32_t)(ch1) << 8) \
|
((uint32_t)(ch0) | ((uint32_t)(ch1) << 8) \
|
||||||
| ((uint32_t)(ch2) << 16) | ((uint32_t)(ch3) << 24))
|
| ((uint32_t)(ch2) << 16) | ((uint32_t)(ch3) << 24))
|
||||||
|
|
||||||
|
#define VKD3D_EXPAND(x) x
|
||||||
|
#define VKD3D_STRINGIFY(x) #x
|
||||||
|
#define VKD3D_EXPAND_AND_STRINGIFY(x) VKD3D_EXPAND(VKD3D_STRINGIFY(x))
|
||||||
|
|
||||||
#define TAG_AON9 VKD3D_MAKE_TAG('A', 'o', 'n', '9')
|
#define TAG_AON9 VKD3D_MAKE_TAG('A', 'o', 'n', '9')
|
||||||
#define TAG_DXBC VKD3D_MAKE_TAG('D', 'X', 'B', 'C')
|
#define TAG_DXBC VKD3D_MAKE_TAG('D', 'X', 'B', 'C')
|
||||||
#define TAG_DXIL VKD3D_MAKE_TAG('D', 'X', 'I', 'L')
|
#define TAG_DXIL VKD3D_MAKE_TAG('D', 'X', 'I', 'L')
|
||||||
|
@ -23,6 +23,8 @@
|
|||||||
|
|
||||||
#include "d3d12_crosstest.h"
|
#include "d3d12_crosstest.h"
|
||||||
|
|
||||||
|
VKD3D_AGILITY_SDK_EXPORTS
|
||||||
|
|
||||||
struct test_options test_options = {0};
|
struct test_options test_options = {0};
|
||||||
|
|
||||||
static PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER pfn_D3D12CreateVersionedRootSignatureDeserializer;
|
static PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER pfn_D3D12CreateVersionedRootSignatureDeserializer;
|
||||||
|
@ -259,6 +259,24 @@ static void wait_queue_idle_(unsigned int line, ID3D12Device *device, ID3D12Comm
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef VKD3D_CROSSTEST
|
#ifdef VKD3D_CROSSTEST
|
||||||
|
|
||||||
|
#ifdef VKD3D_AGILITY_SDK_VERSION
|
||||||
|
# define VKD3D_AGILITY_SDK_EXPORT_VERSION \
|
||||||
|
VKD3D_EXPORT const UINT D3D12SDKVersion = VKD3D_AGILITY_SDK_VERSION;
|
||||||
|
# ifdef VKD3D_AGILITY_SDK_PATH
|
||||||
|
# define VKD3D_AGILITY_SDK_EXPORT_PATH \
|
||||||
|
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 = ".";
|
||||||
|
# endif
|
||||||
|
# define VKD3D_AGILITY_SDK_EXPORTS \
|
||||||
|
VKD3D_AGILITY_SDK_EXPORT_VERSION \
|
||||||
|
VKD3D_AGILITY_SDK_EXPORT_PATH
|
||||||
|
#else
|
||||||
|
# define VKD3D_AGILITY_SDK_EXPORTS
|
||||||
|
#endif
|
||||||
|
|
||||||
static IUnknown *create_warp_adapter(IDXGIFactory4 *factory)
|
static IUnknown *create_warp_adapter(IDXGIFactory4 *factory)
|
||||||
{
|
{
|
||||||
IUnknown *adapter;
|
IUnknown *adapter;
|
||||||
@ -505,6 +523,8 @@ static inline bool is_depth_clip_enable_supported(ID3D12Device *device)
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
#define VKD3D_AGILITY_SDK_EXPORTS
|
||||||
|
|
||||||
#define DECLARE_VK_PFN(name) static PFN_##name name;
|
#define DECLARE_VK_PFN(name) static PFN_##name name;
|
||||||
DECLARE_VK_PFN(vkGetInstanceProcAddr)
|
DECLARE_VK_PFN(vkGetInstanceProcAddr)
|
||||||
#define VK_INSTANCE_PFN DECLARE_VK_PFN
|
#define VK_INSTANCE_PFN DECLARE_VK_PFN
|
||||||
|
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
#include "d3d12_crosstest.h"
|
#include "d3d12_crosstest.h"
|
||||||
|
|
||||||
|
VKD3D_AGILITY_SDK_EXPORTS
|
||||||
|
|
||||||
struct test_options test_options = {0};
|
struct test_options test_options = {0};
|
||||||
|
|
||||||
#define recreate_command_list(a, b, c) recreate_command_list_(__LINE__, a, b, c)
|
#define recreate_command_list(a, b, c) recreate_command_list_(__LINE__, a, b, c)
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
#include "vkd3d_common.h"
|
#include "vkd3d_common.h"
|
||||||
#include "vkd3d_d3d12shader.h"
|
#include "vkd3d_d3d12shader.h"
|
||||||
|
|
||||||
|
VKD3D_AGILITY_SDK_EXPORTS
|
||||||
|
|
||||||
#ifndef D3DERR_INVALIDCALL
|
#ifndef D3DERR_INVALIDCALL
|
||||||
#define D3DERR_INVALIDCALL 0x8876086c
|
#define D3DERR_INVALIDCALL 0x8876086c
|
||||||
#endif
|
#endif
|
||||||
|
@ -2219,6 +2219,9 @@ START_TEST(shader_runner)
|
|||||||
print_dll_version("d3d9.dll");
|
print_dll_version("d3d9.dll");
|
||||||
print_dll_version("d3d11.dll");
|
print_dll_version("d3d11.dll");
|
||||||
print_dll_version("d3d12.dll");
|
print_dll_version("d3d12.dll");
|
||||||
|
print_dll_version("d3d12core.dll");
|
||||||
|
if (test_options.enable_debug_layer)
|
||||||
|
print_dll_version("d3d12sdklayers.dll");
|
||||||
|
|
||||||
#elif defined(_WIN32)
|
#elif defined(_WIN32)
|
||||||
trace("Running tests from a Windows non-cross build\n");
|
trace("Running tests from a Windows non-cross build\n");
|
||||||
|
@ -28,6 +28,8 @@
|
|||||||
#include "shader_runner.h"
|
#include "shader_runner.h"
|
||||||
#include "dxcompiler.h"
|
#include "dxcompiler.h"
|
||||||
|
|
||||||
|
VKD3D_AGILITY_SDK_EXPORTS
|
||||||
|
|
||||||
struct d3d12_resource
|
struct d3d12_resource
|
||||||
{
|
{
|
||||||
struct resource r;
|
struct resource r;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user