2
0
Branimir Karadžić 10 жил өмнө
parent
commit
a3a1127b4f

+ 16 - 12
src/renderer_d3d11.cpp

@@ -768,39 +768,41 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 
 			if (m_featureLevel <= D3D_FEATURE_LEVEL_9_2)
 			{
-				g_caps.maxTextureSize = D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION;
+				g_caps.maxTextureSize   = D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION;
 				g_caps.maxFBAttachments = uint8_t(bx::uint32_min(D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT, BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS));
 			}
 			else if (m_featureLevel == D3D_FEATURE_LEVEL_9_3)
 			{
-				g_caps.maxTextureSize = D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION;
-				g_caps.maxFBAttachments = uint8_t(bx::uint32_min(D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT, BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS));
+				g_caps.maxTextureSize   = D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION;
+				g_caps.maxFBAttachments = uint8_t(bx::uint32_min(D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT, BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS) );
 			}
 			else
 			{
 				g_caps.supported |= BGFX_CAPS_TEXTURE_COMPARE_ALL;
 				g_caps.maxTextureSize = D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION;
-				g_caps.maxFBAttachments = uint8_t(bx::uint32_min(D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT, BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS));
+				g_caps.maxFBAttachments = uint8_t(bx::uint32_min(D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT, BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS) );
 			}
 
-			// 32-bit indices only supported on 9_2+
+			// 32-bit indices only supported on 9_2+.
 			if (m_featureLevel >= D3D_FEATURE_LEVEL_9_2)
 			{
 				g_caps.supported |= BGFX_CAPS_INDEX32;
 			}
 
-			// independent blend only supported on 10_1+
+			// Independent blend only supported on 10_1+.
 			if (m_featureLevel >= D3D_FEATURE_LEVEL_10_1)
 			{
 				g_caps.supported |= BGFX_CAPS_BLEND_INDEPENDENT;
 			}
 
-			// compute support is optional on 10_0 and 10_1 targets
-			if (m_featureLevel == D3D_FEATURE_LEVEL_10_0 || m_featureLevel == D3D_FEATURE_LEVEL_10_1)
+			// Compute support is optional on 10_0 and 10_1 targets.
+			if (m_featureLevel == D3D_FEATURE_LEVEL_10_0
+			||  m_featureLevel == D3D_FEATURE_LEVEL_10_1)
 			{
 				D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS data;
 				hr = m_device->CheckFeatureSupport(D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS, &data, sizeof(data) );
-				if (SUCCEEDED(hr) && data.ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x)
+				if (SUCCEEDED(hr)
+				&&  data.ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x)
 				{
 					g_caps.supported |= BGFX_CAPS_COMPUTE;
 				}
@@ -810,7 +812,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 				g_caps.supported |= BGFX_CAPS_COMPUTE;
 			}
 
-			// instancing fully supported on 9_3+, optionally partially supported at lower levels
+			// Instancing fully supported on 9_3+, optionally partially supported at lower levels.
 			if (m_featureLevel >= D3D_FEATURE_LEVEL_9_3)
 			{
 				g_caps.supported |= BGFX_CAPS_INSTANCING;
@@ -819,7 +821,8 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 			{
 				D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT data;
 				hr = m_device->CheckFeatureSupport(D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT, &data, sizeof(data) );
-				if (SUCCEEDED(hr) && data.SimpleInstancingSupported)
+				if (SUCCEEDED(hr)
+				&&  data.SimpleInstancingSupported)
 				{
 					g_caps.supported |= BGFX_CAPS_INSTANCING;
 				}
@@ -830,7 +833,8 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 			{
 				D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT data;
 				hr = m_device->CheckFeatureSupport(D3D11_FEATURE_D3D9_SHADOW_SUPPORT, &data, sizeof(data) );
-				if (SUCCEEDED(hr) && data.SupportsDepthAsTextureWithLessEqualComparisonFilter)
+				if (SUCCEEDED(hr)
+				&&  data.SupportsDepthAsTextureWithLessEqualComparisonFilter)
 				{
 					g_caps.supported |= BGFX_CAPS_TEXTURE_COMPARE_LEQUAL;
 				}

+ 22 - 8
src/renderer_d3d11.h

@@ -75,21 +75,35 @@ BX_PRAGMA_DIAGNOSTIC_POP()
 #		define	D3D11_REQ_MAXANISOTROPY	16
 #	endif // D3D11_REQ_MAXANISOTROPY
 
-#	ifndef D3D11_FEATURE_DATA_FORMAT_SUPPORT
-typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT
+struct D3D11_FEATURE_DATA_FORMAT_SUPPORT
 {
 	DXGI_FORMAT InFormat;
 	UINT OutFormatSupport;
-} D3D11_FEATURE_DATA_FORMAT_SUPPORT;
-#	endif // D3D11_FEATURE_DATA_FORMAT_SUPPORT
+};
 
-#	ifndef D3D11_FEATURE_DATA_FORMAT_SUPPORT2
-typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2
+struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2
 {
 	DXGI_FORMAT InFormat;
 	UINT OutFormatSupport2;
-} D3D11_FEATURE_DATA_FORMAT_SUPPORT2;
-#	endif // D3D11_FEATURE_DATA_FORMAT_SUPPORT2
+};
+
+struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS
+{
+	BOOL ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x;
+};
+
+#define D3D11_FEATURE_D3D9_SHADOW_SUPPORT D3D11_FEATURE(9)
+struct D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT
+{
+	BOOL SupportsDepthAsTextureWithLessEqualComparisonFilter;
+};
+
+#define D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT D3D11_FEATURE(11)
+struct D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT
+{
+	BOOL SimpleInstancingSupported;
+};
+
 #endif // __MINGW32__
 
 namespace bgfx { namespace d3d11