d3d12: Use DirectX-Headers wrap for d3d12.h
This does 2 things for us: 1. Allows us to compile-time depend on any features from new headers, instead of having to conditionally compile based on Windows SDK version. 2. Allows us to reference d3d12.h when compiling for non-Windows. Reviewed-by: Bill Kristiansen <billkris@microsoft.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com> Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7937>
This commit is contained in:
parent
c37d8ae82b
commit
bc5f69faee
|
@ -572,8 +572,10 @@ if with_gallium_zink
|
|||
dep_vulkan = dependency('vulkan')
|
||||
endif
|
||||
|
||||
if with_gallium_d3d12 and not cpp.check_header('d3d12.h')
|
||||
error('The D3D12 driver requires d3d12.h from the Windows SDK')
|
||||
if with_gallium_d3d12 or with_microsoft_clc
|
||||
dep_dxheaders = dependency('DirectX-Headers', fallback : ['DirectX-Headers', 'dep_dxheaders'],
|
||||
required : with_gallium_d3d12
|
||||
)
|
||||
endif
|
||||
|
||||
if with_vulkan_overlay_layer or with_aco_tests
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include <stdint.h>
|
||||
|
||||
#define D3D12_IGNORE_SDK_LAYERS
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
|
||||
struct d3d12_bo;
|
||||
struct d3d12_descriptor_heap;
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
#include "util/format/u_format.h"
|
||||
#include "util/u_memory.h"
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
|
||||
struct d3d12_bufmgr {
|
||||
struct pb_manager base;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include "pipebuffer/pb_buffer.h"
|
||||
#include "util/u_atomic.h"
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
|
||||
struct d3d12_bufmgr;
|
||||
struct d3d12_screen;
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
#include "util/u_prim.h"
|
||||
#include "util/u_simple_shaders.h"
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
#include <dxcapi.h>
|
||||
#include <wrl.h>
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#include "util/slab.h"
|
||||
#include "util/u_suballoc.h"
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
|
||||
#define D3D12_GFX_SHADER_STAGES (PIPE_SHADER_TYPES - 1)
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
#include "util/u_dynarray.h"
|
||||
#include "util/u_memory.h"
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
|
||||
struct d3d12_descriptor_pool {
|
||||
ID3D12Device *dev;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include "pipe/p_context.h"
|
||||
|
||||
#define D3D12_IGNORE_SDK_LAYERS
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
|
||||
struct d3d12_descriptor_pool;
|
||||
struct d3d12_descriptor_heap;
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
#include "util/u_inlines.h"
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
|
||||
struct pipe_screen;
|
||||
struct d3d12_screen;
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
#ifndef D3D12_FORMATS_H
|
||||
#define D3D12_FORMATS_H
|
||||
|
||||
#include <dxgiformat.h>
|
||||
#include <directx/dxgiformat.h>
|
||||
|
||||
#include "pipe/p_format.h"
|
||||
#include "pipe/p_defines.h"
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include "pipe/p_state.h"
|
||||
|
||||
#define D3D12_IGNORE_SDK_LAYERS
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
|
||||
struct d3d12_context;
|
||||
struct d3d12_root_signature;
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
#include "frontend/sw_winsys.h"
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
#include <memory>
|
||||
|
||||
static bool
|
||||
|
|
|
@ -29,7 +29,7 @@ struct pipe_screen;
|
|||
#include "util/u_range.h"
|
||||
#include "util/u_transfer.h"
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
|
||||
struct d3d12_resource {
|
||||
struct pipe_resource base;
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
#include "frontend/sw_winsys.h"
|
||||
|
||||
#include <dxgi1_4.h>
|
||||
#include <d3d12sdklayers.h>
|
||||
#include <directx/d3d12sdklayers.h>
|
||||
|
||||
static const struct debug_named_value
|
||||
debug_options[] = {
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include "util/slab.h"
|
||||
|
||||
#define D3D12_IGNORE_SDK_LAYERS
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
#include <dxgi1_4.h>
|
||||
|
||||
struct pb_manager;
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
#include "pipe/p_state.h"
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
|
||||
struct d3d12_descriptor_handle;
|
||||
struct pipe_context;
|
||||
|
|
|
@ -48,7 +48,7 @@ libd3d12 = static_library(
|
|||
files_libd3d12,
|
||||
gnu_symbol_visibility : 'hidden',
|
||||
include_directories : [inc_include, inc_src, inc_mesa, inc_gallium, inc_gallium_aux],
|
||||
dependencies: [idep_nir_headers, idep_libdxil_compiler, idep_libd3d12_resource_state],
|
||||
dependencies: [idep_nir_headers, idep_libdxil_compiler, idep_libd3d12_resource_state, dep_dxheaders],
|
||||
)
|
||||
|
||||
driver_d3d12 = declare_dependency(
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
#include <Windows.h>
|
||||
#include <dxgi1_4.h>
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
#include <wrl.h>
|
||||
|
||||
#include "util/u_memory.h"
|
||||
|
|
|
@ -24,6 +24,7 @@ libd3d12winsys = static_library(
|
|||
'd3d12winsys',
|
||||
files('d3d12_wgl_framebuffer.cpp', 'd3d12_wgl_winsys.c'),
|
||||
include_directories : [inc_src, inc_wgl, inc_include, inc_gallium, inc_gallium_aux, inc_gallium_drivers],
|
||||
dependencies : [dep_dxheaders],
|
||||
gnu_symbol_visibility : 'hidden',
|
||||
)
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include <stdexcept>
|
||||
#include <vector>
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
#include <dxgi1_4.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <wrl.h>
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include <stdint.h>
|
||||
#include <stdexcept>
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
#include <dxgi1_4.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <wrl.h>
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include <stdint.h>
|
||||
#include <stdexcept>
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
#include <dxgi1_4.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <wrl.h>
|
||||
|
|
|
@ -59,10 +59,12 @@ libclc_compiler = shared_library(
|
|||
dep_llvmspirvlib, idep_mesautil, idep_libdxil_compiler, idep_nir, dep_spirv_tools]
|
||||
)
|
||||
|
||||
if dep_dxheaders.found()
|
||||
clc_compiler_test = executable('clc_compiler_test',
|
||||
['clc_compiler_test.cpp', 'compute_test.cpp'],
|
||||
link_with : [libclc_compiler],
|
||||
dependencies : [idep_gtest, idep_mesautil],
|
||||
dependencies : [idep_gtest, idep_mesautil, idep_libdxil_compiler, dep_dxheaders],
|
||||
include_directories : [inc_include, inc_src])
|
||||
|
||||
test('clc_compiler_test', clc_compiler_test, timeout: 180)
|
||||
endif
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
#include <vector>
|
||||
#include <assert.h>
|
||||
#include <d3d12.h>
|
||||
#include <directx/d3d12.h>
|
||||
|
||||
#include "util/list.h"
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ libd3d12_resource_state = static_library(
|
|||
files_libd3d12_resource_state,
|
||||
gnu_symbol_visibility : 'hidden',
|
||||
include_directories : [inc_include, inc_src, inc_mesa],
|
||||
dependencies: [],
|
||||
dependencies: [dep_dxheaders],
|
||||
)
|
||||
|
||||
idep_libd3d12_resource_state = declare_dependency(
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
[wrap-git]
|
||||
directory = DirectX-Headers-1.0
|
||||
|
||||
url = https://github.com/microsoft/DirectX-Headers.git
|
||||
revision = head
|
Loading…
Reference in New Issue