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')
|
dep_vulkan = dependency('vulkan')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if with_gallium_d3d12 and not cpp.check_header('d3d12.h')
|
if with_gallium_d3d12 or with_microsoft_clc
|
||||||
error('The D3D12 driver requires d3d12.h from the Windows SDK')
|
dep_dxheaders = dependency('DirectX-Headers', fallback : ['DirectX-Headers', 'dep_dxheaders'],
|
||||||
|
required : with_gallium_d3d12
|
||||||
|
)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if with_vulkan_overlay_layer or with_aco_tests
|
if with_vulkan_overlay_layer or with_aco_tests
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#define D3D12_IGNORE_SDK_LAYERS
|
#define D3D12_IGNORE_SDK_LAYERS
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
|
|
||||||
struct d3d12_bo;
|
struct d3d12_bo;
|
||||||
struct d3d12_descriptor_heap;
|
struct d3d12_descriptor_heap;
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
#include "util/format/u_format.h"
|
#include "util/format/u_format.h"
|
||||||
#include "util/u_memory.h"
|
#include "util/u_memory.h"
|
||||||
|
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
|
|
||||||
struct d3d12_bufmgr {
|
struct d3d12_bufmgr {
|
||||||
struct pb_manager base;
|
struct pb_manager base;
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#include "pipebuffer/pb_buffer.h"
|
#include "pipebuffer/pb_buffer.h"
|
||||||
#include "util/u_atomic.h"
|
#include "util/u_atomic.h"
|
||||||
|
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
|
|
||||||
struct d3d12_bufmgr;
|
struct d3d12_bufmgr;
|
||||||
struct d3d12_screen;
|
struct d3d12_screen;
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
#include "util/u_prim.h"
|
#include "util/u_prim.h"
|
||||||
#include "util/u_simple_shaders.h"
|
#include "util/u_simple_shaders.h"
|
||||||
|
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
#include <dxcapi.h>
|
#include <dxcapi.h>
|
||||||
#include <wrl.h>
|
#include <wrl.h>
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
#include "util/slab.h"
|
#include "util/slab.h"
|
||||||
#include "util/u_suballoc.h"
|
#include "util/u_suballoc.h"
|
||||||
|
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
|
|
||||||
#define D3D12_GFX_SHADER_STAGES (PIPE_SHADER_TYPES - 1)
|
#define D3D12_GFX_SHADER_STAGES (PIPE_SHADER_TYPES - 1)
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
#include "util/u_dynarray.h"
|
#include "util/u_dynarray.h"
|
||||||
#include "util/u_memory.h"
|
#include "util/u_memory.h"
|
||||||
|
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
|
|
||||||
struct d3d12_descriptor_pool {
|
struct d3d12_descriptor_pool {
|
||||||
ID3D12Device *dev;
|
ID3D12Device *dev;
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#include "pipe/p_context.h"
|
#include "pipe/p_context.h"
|
||||||
|
|
||||||
#define D3D12_IGNORE_SDK_LAYERS
|
#define D3D12_IGNORE_SDK_LAYERS
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
|
|
||||||
struct d3d12_descriptor_pool;
|
struct d3d12_descriptor_pool;
|
||||||
struct d3d12_descriptor_heap;
|
struct d3d12_descriptor_heap;
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
#include "util/u_inlines.h"
|
#include "util/u_inlines.h"
|
||||||
|
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
|
|
||||||
struct pipe_screen;
|
struct pipe_screen;
|
||||||
struct d3d12_screen;
|
struct d3d12_screen;
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#ifndef D3D12_FORMATS_H
|
#ifndef D3D12_FORMATS_H
|
||||||
#define D3D12_FORMATS_H
|
#define D3D12_FORMATS_H
|
||||||
|
|
||||||
#include <dxgiformat.h>
|
#include <directx/dxgiformat.h>
|
||||||
|
|
||||||
#include "pipe/p_format.h"
|
#include "pipe/p_format.h"
|
||||||
#include "pipe/p_defines.h"
|
#include "pipe/p_defines.h"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#include "pipe/p_state.h"
|
#include "pipe/p_state.h"
|
||||||
|
|
||||||
#define D3D12_IGNORE_SDK_LAYERS
|
#define D3D12_IGNORE_SDK_LAYERS
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
|
|
||||||
struct d3d12_context;
|
struct d3d12_context;
|
||||||
struct d3d12_root_signature;
|
struct d3d12_root_signature;
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
|
|
||||||
#include "frontend/sw_winsys.h"
|
#include "frontend/sw_winsys.h"
|
||||||
|
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
|
|
|
@ -29,7 +29,7 @@ struct pipe_screen;
|
||||||
#include "util/u_range.h"
|
#include "util/u_range.h"
|
||||||
#include "util/u_transfer.h"
|
#include "util/u_transfer.h"
|
||||||
|
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
|
|
||||||
struct d3d12_resource {
|
struct d3d12_resource {
|
||||||
struct pipe_resource base;
|
struct pipe_resource base;
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
#include "frontend/sw_winsys.h"
|
#include "frontend/sw_winsys.h"
|
||||||
|
|
||||||
#include <dxgi1_4.h>
|
#include <dxgi1_4.h>
|
||||||
#include <d3d12sdklayers.h>
|
#include <directx/d3d12sdklayers.h>
|
||||||
|
|
||||||
static const struct debug_named_value
|
static const struct debug_named_value
|
||||||
debug_options[] = {
|
debug_options[] = {
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
#include "util/slab.h"
|
#include "util/slab.h"
|
||||||
|
|
||||||
#define D3D12_IGNORE_SDK_LAYERS
|
#define D3D12_IGNORE_SDK_LAYERS
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
#include <dxgi1_4.h>
|
#include <dxgi1_4.h>
|
||||||
|
|
||||||
struct pb_manager;
|
struct pb_manager;
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
#include "pipe/p_state.h"
|
#include "pipe/p_state.h"
|
||||||
|
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
|
|
||||||
struct d3d12_descriptor_handle;
|
struct d3d12_descriptor_handle;
|
||||||
struct pipe_context;
|
struct pipe_context;
|
||||||
|
|
|
@ -48,7 +48,7 @@ libd3d12 = static_library(
|
||||||
files_libd3d12,
|
files_libd3d12,
|
||||||
gnu_symbol_visibility : 'hidden',
|
gnu_symbol_visibility : 'hidden',
|
||||||
include_directories : [inc_include, inc_src, inc_mesa, inc_gallium, inc_gallium_aux],
|
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(
|
driver_d3d12 = declare_dependency(
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
#include <dxgi1_4.h>
|
#include <dxgi1_4.h>
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
#include <wrl.h>
|
#include <wrl.h>
|
||||||
|
|
||||||
#include "util/u_memory.h"
|
#include "util/u_memory.h"
|
||||||
|
|
|
@ -24,6 +24,7 @@ libd3d12winsys = static_library(
|
||||||
'd3d12winsys',
|
'd3d12winsys',
|
||||||
files('d3d12_wgl_framebuffer.cpp', 'd3d12_wgl_winsys.c'),
|
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],
|
include_directories : [inc_src, inc_wgl, inc_include, inc_gallium, inc_gallium_aux, inc_gallium_drivers],
|
||||||
|
dependencies : [dep_dxheaders],
|
||||||
gnu_symbol_visibility : 'hidden',
|
gnu_symbol_visibility : 'hidden',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
#include <dxgi1_4.h>
|
#include <dxgi1_4.h>
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
#include <wrl.h>
|
#include <wrl.h>
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
#include <dxgi1_4.h>
|
#include <dxgi1_4.h>
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
#include <wrl.h>
|
#include <wrl.h>
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
#include <dxgi1_4.h>
|
#include <dxgi1_4.h>
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
#include <wrl.h>
|
#include <wrl.h>
|
||||||
|
|
|
@ -59,10 +59,12 @@ libclc_compiler = shared_library(
|
||||||
dep_llvmspirvlib, idep_mesautil, idep_libdxil_compiler, idep_nir, dep_spirv_tools]
|
dep_llvmspirvlib, idep_mesautil, idep_libdxil_compiler, idep_nir, dep_spirv_tools]
|
||||||
)
|
)
|
||||||
|
|
||||||
clc_compiler_test = executable('clc_compiler_test',
|
if dep_dxheaders.found()
|
||||||
['clc_compiler_test.cpp', 'compute_test.cpp'],
|
clc_compiler_test = executable('clc_compiler_test',
|
||||||
link_with : [libclc_compiler],
|
['clc_compiler_test.cpp', 'compute_test.cpp'],
|
||||||
dependencies : [idep_gtest, idep_mesautil],
|
link_with : [libclc_compiler],
|
||||||
include_directories : [inc_include, inc_src])
|
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)
|
test('clc_compiler_test', clc_compiler_test, timeout: 180)
|
||||||
|
endif
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <d3d12.h>
|
#include <directx/d3d12.h>
|
||||||
|
|
||||||
#include "util/list.h"
|
#include "util/list.h"
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ libd3d12_resource_state = static_library(
|
||||||
files_libd3d12_resource_state,
|
files_libd3d12_resource_state,
|
||||||
gnu_symbol_visibility : 'hidden',
|
gnu_symbol_visibility : 'hidden',
|
||||||
include_directories : [inc_include, inc_src, inc_mesa],
|
include_directories : [inc_include, inc_src, inc_mesa],
|
||||||
dependencies: [],
|
dependencies: [dep_dxheaders],
|
||||||
)
|
)
|
||||||
|
|
||||||
idep_libd3d12_resource_state = declare_dependency(
|
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