Branimir Karadžić 8 vuotta sitten
vanhempi
sitoutus
052948f173
5 muutettua tiedostoa jossa 36 lisäystä ja 16 poistoa
  1. 5 2
      src/renderer_d3d11.cpp
  2. 10 7
      src/renderer_d3d11.h
  3. 13 2
      src/renderer_d3d12.cpp
  4. 7 4
      src/renderer_d3d12.h
  5. 1 1
      tools/shaderc/shaderc.cpp

+ 5 - 2
src/renderer_d3d11.cpp

@@ -1253,6 +1253,9 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 						goto error;
 					}
 
+					m_swapEffect      = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL;
+					m_swapBufferCount = 2;
+
 					bx::memSet(&m_scd, 0, sizeof(m_scd) );
 					m_scd.Width  = _init.resolution.m_width;
 					m_scd.Height = _init.resolution.m_height;
@@ -1261,11 +1264,11 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 					m_scd.SampleDesc.Count   = 1;
 					m_scd.SampleDesc.Quality = 0;
 					m_scd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
-					m_scd.BufferCount = 2;
+					m_scd.BufferCount = m_swapBufferCount;
 					m_scd.Scaling = 0 == g_platformData.ndt
 						? DXGI_SCALING_NONE
 						: DXGI_SCALING_STRETCH;
-					m_scd.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL;
+					m_scd.SwapEffect = m_swapEffect;
 					m_scd.AlphaMode  = DXGI_ALPHA_MODE_IGNORE;
 					m_scd.Flags      = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH;
 

+ 10 - 7
src/renderer_d3d11.h

@@ -10,8 +10,8 @@
 #define USE_D3D11_STAGING_BUFFER 0
 
 #if !USE_D3D11_DYNAMIC_LIB
-#	undef  BGFX_CONFIG_DEBUG_PIX
-#	define BGFX_CONFIG_DEBUG_PIX 0
+#   undef  BGFX_CONFIG_DEBUG_PIX
+#   define BGFX_CONFIG_DEBUG_PIX 0
 #endif // !USE_D3D11_DYNAMIC_LIB
 
 BX_PRAGMA_DIAGNOSTIC_PUSH();
@@ -21,13 +21,16 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4005) // warning C4005: '' : macro redefinitio
 #include <sal.h>
 #define D3D11_NO_HELPERS
 #if BX_PLATFORM_WINDOWS
-#	include <d3d11_3.h>
-#	include <dxgi1_6.h>
+#   include <d3d11_3.h>
+#   include <dxgi1_6.h>
 #elif BX_PLATFORM_WINRT
-#	define __D3D10_1SHADER_H__ // BK - not used keep quiet!
-#	include <d3d11_3.h>
+#   define __D3D10_1SHADER_H__ // BK - not used keep quiet!
+#   include <d3d11_3.h>
 #else
-#	include <d3d11_x.h>
+#   if !BGFX_CONFIG_DEBUG
+#      define D3DCOMPILE_NO_DEBUG_AND_ALL_FAST_SEMANTICS 1
+#   endif // !BGFX_CONFIG_DEBUG
+#   include <d3d11_x.h>
 #endif // BX_PLATFORM_*
 BX_PRAGMA_DIAGNOSTIC_POP()
 

+ 13 - 2
src/renderer_d3d12.cpp

@@ -284,6 +284,7 @@ namespace bgfx { namespace d3d12
 		"", // DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020
 		"", // DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020
 		"", // DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020
+#if BX_PLATFORM_WINDOWS
 		"", // DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020
 		"", // DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020
 		"", // DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020
@@ -292,9 +293,17 @@ namespace bgfx { namespace d3d12
 //		"", // DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709
 //		"", // DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020
 //		"", // DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020
+#endif // BX_PLATFORM_WINDOWS
 		"Custom",
 	};
-	BX_STATIC_ASSERT(BX_COUNTOF(s_colorSpace) == DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020+2);
+	static const char kDxgiLastColorSpace =
+#if BX_PLATFORM_WINDOWS
+		DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020
+#else
+		DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020
+#endif // BX_PLATFORM_WINDOWS
+		;
+	BX_STATIC_ASSERT(BX_COUNTOF(s_colorSpace) == kDxgiLastColorSpace+2);
 
 	static const D3D12_INPUT_ELEMENT_DESC s_attrib[] =
 	{
@@ -1089,6 +1098,7 @@ namespace bgfx { namespace d3d12
 				hr = m_swapChain->GetContainingOutput(&output);
 				if (SUCCEEDED(hr) )
 				{
+#if BX_PLATFORM_WINDOWS
 					IDXGIOutput6* output6;
 					hr = output->QueryInterface(IID_IDXGIOutput6, (void**)&output6);
 					if (SUCCEEDED(hr) )
@@ -1100,7 +1110,7 @@ namespace bgfx { namespace d3d12
 							BX_TRACE("Display specs:")
 							BX_TRACE("\t         BitsPerColor: %d", desc.BitsPerColor);
 							BX_TRACE("\t          Color space: %s (colorspace, range, gamma, sitting, primaries, transform)"
-								, s_colorSpace[bx::min<uint32_t>(desc.ColorSpace, DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020+1)]
+								, s_colorSpace[bx::min<uint32_t>(desc.ColorSpace, kDxgiLastColorSpace+1)]
 								);
 							BX_TRACE("\t           RedPrimary: %f, %f", desc.RedPrimary[0],   desc.RedPrimary[1]);
 							BX_TRACE("\t         GreenPrimary: %f, %f", desc.GreenPrimary[0], desc.GreenPrimary[1]);
@@ -1113,6 +1123,7 @@ namespace bgfx { namespace d3d12
 
 						DX_RELEASE(output6, 1);
 					}
+#endif // BX_PLATFORM_WINDOWS
 
 					DX_RELEASE(output, 0);
 				}

+ 7 - 4
src/renderer_d3d12.h

@@ -9,11 +9,14 @@
 #define USE_D3D12_DYNAMIC_LIB BX_PLATFORM_WINDOWS
 
 #include <sal.h>
-#if BX_PLATFORM_XBOXONE
-#	include <d3d12_x.h>
+#if BX_PLATFORM_WINDOWS || BX_PLATFORM_WINRT
+#   include <d3d12.h>
+#   include <dxgi1_6.h>
 #else
-#	include <d3d12.h>
-#	include <dxgi1_6.h>
+#   if !BGFX_CONFIG_DEBUG
+#      define D3DCOMPILE_NO_DEBUG 1
+#   endif // !BGFX_CONFIG_DEBUG
+#   include <d3d12_x.h>
 #endif // BX_PLATFORM_XBOXONE
 
 #if defined(__MINGW32__) // BK - temp workaround for MinGW until I nuke d3dx12 usage.

+ 1 - 1
tools/shaderc/shaderc.cpp

@@ -18,7 +18,7 @@ extern "C"
 #define BGFX_CHUNK_MAGIC_VSH BX_MAKEFOURCC('V', 'S', 'H', 0x5)
 
 #define BGFX_SHADERC_VERSION_MAJOR 1
-#define BGFX_SHADERC_VERSION_MINOR 7
+#define BGFX_SHADERC_VERSION_MINOR 8
 
 namespace bgfx
 {