summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/src/renderer_d3d12.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/src/renderer_d3d12.cpp')
-rw-r--r--3rdparty/bgfx/src/renderer_d3d12.cpp179
1 files changed, 104 insertions, 75 deletions
diff --git a/3rdparty/bgfx/src/renderer_d3d12.cpp b/3rdparty/bgfx/src/renderer_d3d12.cpp
index 409d33bce10..06bc0632536 100644
--- a/3rdparty/bgfx/src/renderer_d3d12.cpp
+++ b/3rdparty/bgfx/src/renderer_d3d12.cpp
@@ -18,7 +18,7 @@ namespace bgfx { namespace d3d12
struct PrimInfo
{
- D3D_PRIMITIVE_TOPOLOGY m_toplogy;
+ D3D_PRIMITIVE_TOPOLOGY m_topology;
D3D12_PRIMITIVE_TOPOLOGY_TYPE m_topologyType;
uint32_t m_min;
uint32_t m_div;
@@ -63,20 +63,20 @@ namespace bgfx { namespace d3d12
static const D3D12_BLEND s_blendFactor[][2] =
{
- { (D3D12_BLEND)0, (D3D12_BLEND)0 }, // ignored
+ { D3D12_BLEND(0), D3D12_BLEND(0) }, // ignored
{ D3D12_BLEND_ZERO, D3D12_BLEND_ZERO }, // ZERO
- { D3D12_BLEND_ONE, D3D12_BLEND_ONE }, // ONE
- { D3D12_BLEND_SRC_COLOR, D3D12_BLEND_SRC_ALPHA }, // SRC_COLOR
- { D3D12_BLEND_INV_SRC_COLOR, D3D12_BLEND_INV_SRC_ALPHA }, // INV_SRC_COLOR
- { D3D12_BLEND_SRC_ALPHA, D3D12_BLEND_SRC_ALPHA }, // SRC_ALPHA
- { D3D12_BLEND_INV_SRC_ALPHA, D3D12_BLEND_INV_SRC_ALPHA }, // INV_SRC_ALPHA
- { D3D12_BLEND_DEST_ALPHA, D3D12_BLEND_DEST_ALPHA }, // DST_ALPHA
- { D3D12_BLEND_INV_DEST_ALPHA, D3D12_BLEND_INV_DEST_ALPHA }, // INV_DST_ALPHA
- { D3D12_BLEND_DEST_COLOR, D3D12_BLEND_DEST_ALPHA }, // DST_COLOR
- { D3D12_BLEND_INV_DEST_COLOR, D3D12_BLEND_INV_DEST_ALPHA }, // INV_DST_COLOR
- { D3D12_BLEND_SRC_ALPHA_SAT, D3D12_BLEND_ONE }, // SRC_ALPHA_SAT
- { D3D12_BLEND_BLEND_FACTOR, D3D12_BLEND_BLEND_FACTOR }, // FACTOR
- { D3D12_BLEND_INV_BLEND_FACTOR, D3D12_BLEND_INV_BLEND_FACTOR }, // INV_FACTOR
+ { D3D12_BLEND_ONE, D3D12_BLEND_ONE }, // ONE
+ { D3D12_BLEND_SRC_COLOR, D3D12_BLEND_SRC_ALPHA }, // SRC_COLOR
+ { D3D12_BLEND_INV_SRC_COLOR, D3D12_BLEND_INV_SRC_ALPHA }, // INV_SRC_COLOR
+ { D3D12_BLEND_SRC_ALPHA, D3D12_BLEND_SRC_ALPHA }, // SRC_ALPHA
+ { D3D12_BLEND_INV_SRC_ALPHA, D3D12_BLEND_INV_SRC_ALPHA }, // INV_SRC_ALPHA
+ { D3D12_BLEND_DEST_ALPHA, D3D12_BLEND_DEST_ALPHA }, // DST_ALPHA
+ { D3D12_BLEND_INV_DEST_ALPHA, D3D12_BLEND_INV_DEST_ALPHA }, // INV_DST_ALPHA
+ { D3D12_BLEND_DEST_COLOR, D3D12_BLEND_DEST_ALPHA }, // DST_COLOR
+ { D3D12_BLEND_INV_DEST_COLOR, D3D12_BLEND_INV_DEST_ALPHA }, // INV_DST_COLOR
+ { D3D12_BLEND_SRC_ALPHA_SAT, D3D12_BLEND_ONE }, // SRC_ALPHA_SAT
+ { D3D12_BLEND_BLEND_FACTOR, D3D12_BLEND_BLEND_FACTOR }, // FACTOR
+ { D3D12_BLEND_INV_BLEND_FACTOR, D3D12_BLEND_INV_BLEND_FACTOR }, // INV_FACTOR
};
static const D3D12_BLEND_OP s_blendEquation[] =
@@ -221,6 +221,10 @@ namespace bgfx { namespace d3d12
{ DXGI_FORMAT_R32G32_SINT, DXGI_FORMAT_R32G32_SINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG32I
{ DXGI_FORMAT_R32G32_UINT, DXGI_FORMAT_R32G32_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG32U
{ DXGI_FORMAT_R32G32_FLOAT, DXGI_FORMAT_R32G32_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG32F
+ { DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGB8
+ { DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGB8I
+ { DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGB8U
+ { DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGB8S
{ DXGI_FORMAT_R9G9B9E5_SHAREDEXP, DXGI_FORMAT_R9G9B9E5_SHAREDEXP, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGB9E5F
{ DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_B8G8R8A8_UNORM_SRGB }, // BGRA8
{ DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_R8G8B8A8_UNORM_SRGB }, // RGBA8
@@ -556,7 +560,12 @@ namespace bgfx { namespace d3d12
HRESULT hr;
+#if BX_PLATFORM_WINDOWS
hr = CreateDXGIFactory1(IID_IDXGIFactory4, (void**)&m_factory);
+#else
+ hr = S_OK;
+ m_factory = NULL;
+#endif // BX_PLATFORM_*
BX_WARN(SUCCEEDED(hr), "Unable to create DXGI factory.");
if (FAILED(hr) )
@@ -570,7 +579,11 @@ namespace bgfx { namespace d3d12
m_driverType = D3D_DRIVER_TYPE_HARDWARE;
{
+#if BX_PLATFORM_WINDOWS
IDXGIAdapter3* adapter;
+#else
+ IDXGIAdapter* adapter;
+#endif // BX_PLATFORM_*
for (uint32_t ii = 0; DXGI_ERROR_NOT_FOUND != m_factory->EnumAdapters(ii, reinterpret_cast<IDXGIAdapter**>(&adapter) ); ++ii)
{
DXGI_ADAPTER_DESC desc;
@@ -663,7 +676,11 @@ namespace bgfx { namespace d3d12
{
memset(&m_adapterDesc, 0, sizeof(m_adapterDesc) );
luid = m_device->GetAdapterLuid();
+#if BX_PLATFORM_WINDOWS
IDXGIAdapter3* adapter;
+#else
+ IDXGIAdapter* adapter;
+#endif // BX_PLATFORM_*
for (uint32_t ii = 0; DXGI_ERROR_NOT_FOUND != m_factory->EnumAdapters(ii, reinterpret_cast<IDXGIAdapter**>(&adapter) ); ++ii)
{
adapter->GetDesc(&m_adapterDesc);
@@ -756,14 +773,15 @@ namespace bgfx { namespace d3d12
m_resolution.m_width = BGFX_DEFAULT_WIDTH;
m_resolution.m_height = BGFX_DEFAULT_HEIGHT;
+ m_numWindows = 1;
+
+#if BX_PLATFORM_WINDOWS
DX_CHECK(m_factory->MakeWindowAssociation( (HWND)g_platformData.nwh
, 0
| DXGI_MWA_NO_WINDOW_CHANGES
| DXGI_MWA_NO_ALT_ENTER
) );
- m_numWindows = 1;
-
if (BX_ENABLED(BGFX_CONFIG_DEBUG) )
{
hr = m_device->QueryInterface(IID_ID3D12InfoQueue, (void**)&m_infoQueue);
@@ -789,6 +807,7 @@ namespace bgfx { namespace d3d12
DX_RELEASE_WARNONLY(m_infoQueue, 0);
}
}
+#endif // BX_PLATFORM_WINDOWS
D3D12_DESCRIPTOR_HEAP_DESC rtvDescHeap;
rtvDescHeap.NumDescriptors = 0
@@ -1772,6 +1791,8 @@ data.NumQualityLevels = 0;
preReset();
+ BX_UNUSED(resize);
+#if BX_PLATFORM_WINDOWS
if (resize)
{
uint32_t nodeMask[] = { 1, 1, 1, 1 };
@@ -1789,6 +1810,7 @@ data.NumQualityLevels = 0;
) );
}
else
+#endif // BX_PLATFORM_WINDOWS
{
updateMsaa();
m_scd.SampleDesc = s_msaa[(m_resolution.m_flags&BGFX_RESET_MSAA_MASK)>>BGFX_RESET_MSAA_SHIFT];
@@ -1943,13 +1965,14 @@ data.NumQualityLevels = 0;
m_rtMsaa = _msaa;
}
- void setBlendState(D3D12_BLEND_DESC& desc, uint64_t _state, uint32_t _rgba = 0)
+ void setBlendState(D3D12_BLEND_DESC& _desc, uint64_t _state, uint32_t _rgba = 0)
{
- memset(&desc, 0, sizeof(desc) );
- desc.IndependentBlendEnable = !!(BGFX_STATE_BLEND_INDEPENDENT & _state);
+ _desc.AlphaToCoverageEnable = false;
+ _desc.IndependentBlendEnable = !!(BGFX_STATE_BLEND_INDEPENDENT & _state);
- D3D12_RENDER_TARGET_BLEND_DESC* drt = &desc.RenderTarget[0];
- drt->BlendEnable = !!(BGFX_STATE_BLEND_MASK & _state);
+ D3D12_RENDER_TARGET_BLEND_DESC* drt = &_desc.RenderTarget[0];
+ drt->BlendEnable = !!(BGFX_STATE_BLEND_MASK & _state);
+ drt->LogicOpEnable = false;
{
const uint32_t blend = uint32_t( (_state & BGFX_STATE_BLEND_MASK ) >> BGFX_STATE_BLEND_SHIFT);
@@ -1983,14 +2006,16 @@ data.NumQualityLevels = 0;
: 0
;
+ drt->LogicOp = D3D12_LOGIC_OP_CLEAR;
drt->RenderTargetWriteMask = writeMask;
- if (desc.IndependentBlendEnable)
+ if (_desc.IndependentBlendEnable)
{
for (uint32_t ii = 1, rgba = _rgba; ii < BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS; ++ii, rgba >>= 11)
{
- drt = &desc.RenderTarget[ii];
+ drt = &_desc.RenderTarget[ii];
drt->BlendEnable = 0 != (rgba & 0x7ff);
+ drt->LogicOpEnable = false;
const uint32_t src = (rgba ) & 0xf;
const uint32_t dst = (rgba >> 4) & 0xf;
@@ -2004,6 +2029,7 @@ data.NumQualityLevels = 0;
drt->DestBlendAlpha = s_blendFactor[dst][1];
drt->BlendOpAlpha = s_blendEquation[equation];
+ drt->LogicOp = D3D12_LOGIC_OP_CLEAR;
drt->RenderTargetWriteMask = writeMask;
}
}
@@ -2011,61 +2037,61 @@ data.NumQualityLevels = 0;
{
for (uint32_t ii = 1; ii < BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS; ++ii)
{
- memcpy(&desc.RenderTarget[ii], drt, sizeof(D3D12_RENDER_TARGET_BLEND_DESC) );
+ memcpy(&_desc.RenderTarget[ii], drt, sizeof(D3D12_RENDER_TARGET_BLEND_DESC) );
}
}
}
- void setRasterizerState(D3D12_RASTERIZER_DESC& desc, uint64_t _state, bool _wireframe = false)
+ void setRasterizerState(D3D12_RASTERIZER_DESC& _desc, uint64_t _state, bool _wireframe = false)
{
const uint32_t cull = (_state&BGFX_STATE_CULL_MASK) >> BGFX_STATE_CULL_SHIFT;
- desc.FillMode = _wireframe
+ _desc.FillMode = _wireframe
? D3D12_FILL_MODE_WIREFRAME
: D3D12_FILL_MODE_SOLID
;
- desc.CullMode = s_cullMode[cull];
- desc.FrontCounterClockwise = false;
- desc.DepthBias = 0;
- desc.DepthBiasClamp = 0.0f;
- desc.SlopeScaledDepthBias = 0.0f;
- desc.DepthClipEnable = !m_depthClamp;
- desc.MultisampleEnable = !!(_state&BGFX_STATE_MSAA);
- desc.AntialiasedLineEnable = false;
- desc.ForcedSampleCount = 0;
- desc.ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF;
+ _desc.CullMode = s_cullMode[cull];
+ _desc.FrontCounterClockwise = false;
+ _desc.DepthBias = 0;
+ _desc.DepthBiasClamp = 0.0f;
+ _desc.SlopeScaledDepthBias = 0.0f;
+ _desc.DepthClipEnable = !m_depthClamp;
+ _desc.MultisampleEnable = !!(_state&BGFX_STATE_MSAA);
+ _desc.AntialiasedLineEnable = false;
+ _desc.ForcedSampleCount = 0;
+ _desc.ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF;
}
- void setDepthStencilState(D3D12_DEPTH_STENCIL_DESC& desc, uint64_t _state, uint64_t _stencil = 0)
+ void setDepthStencilState(D3D12_DEPTH_STENCIL_DESC& _desc, uint64_t _state, uint64_t _stencil = 0)
{
const uint32_t fstencil = unpackStencil(0, _stencil);
- memset(&desc, 0, sizeof(desc) );
+ memset(&_desc, 0, sizeof(_desc) );
uint32_t func = (_state&BGFX_STATE_DEPTH_TEST_MASK)>>BGFX_STATE_DEPTH_TEST_SHIFT;
- desc.DepthEnable = 0 != func;
- desc.DepthWriteMask = !!(BGFX_STATE_DEPTH_WRITE & _state)
+ _desc.DepthEnable = 0 != func;
+ _desc.DepthWriteMask = !!(BGFX_STATE_DEPTH_WRITE & _state)
? D3D12_DEPTH_WRITE_MASK_ALL
: D3D12_DEPTH_WRITE_MASK_ZERO
;
- desc.DepthFunc = s_cmpFunc[func];
+ _desc.DepthFunc = s_cmpFunc[func];
uint32_t bstencil = unpackStencil(1, _stencil);
uint32_t frontAndBack = bstencil != BGFX_STENCIL_NONE && bstencil != fstencil;
bstencil = frontAndBack ? bstencil : fstencil;
- desc.StencilEnable = 0 != _stencil;
- desc.StencilReadMask = (fstencil & BGFX_STENCIL_FUNC_RMASK_MASK) >> BGFX_STENCIL_FUNC_RMASK_SHIFT;
- desc.StencilWriteMask = 0xff;
+ _desc.StencilEnable = 0 != _stencil;
+ _desc.StencilReadMask = (fstencil & BGFX_STENCIL_FUNC_RMASK_MASK) >> BGFX_STENCIL_FUNC_RMASK_SHIFT;
+ _desc.StencilWriteMask = 0xff;
- desc.FrontFace.StencilFailOp = s_stencilOp[(fstencil & BGFX_STENCIL_OP_FAIL_S_MASK) >> BGFX_STENCIL_OP_FAIL_S_SHIFT];
- desc.FrontFace.StencilDepthFailOp = s_stencilOp[(fstencil & BGFX_STENCIL_OP_FAIL_Z_MASK) >> BGFX_STENCIL_OP_FAIL_Z_SHIFT];
- desc.FrontFace.StencilPassOp = s_stencilOp[(fstencil & BGFX_STENCIL_OP_PASS_Z_MASK) >> BGFX_STENCIL_OP_PASS_Z_SHIFT];
- desc.FrontFace.StencilFunc = s_cmpFunc[(fstencil & BGFX_STENCIL_TEST_MASK) >> BGFX_STENCIL_TEST_SHIFT];
+ _desc.FrontFace.StencilFailOp = s_stencilOp[(fstencil & BGFX_STENCIL_OP_FAIL_S_MASK) >> BGFX_STENCIL_OP_FAIL_S_SHIFT];
+ _desc.FrontFace.StencilDepthFailOp = s_stencilOp[(fstencil & BGFX_STENCIL_OP_FAIL_Z_MASK) >> BGFX_STENCIL_OP_FAIL_Z_SHIFT];
+ _desc.FrontFace.StencilPassOp = s_stencilOp[(fstencil & BGFX_STENCIL_OP_PASS_Z_MASK) >> BGFX_STENCIL_OP_PASS_Z_SHIFT];
+ _desc.FrontFace.StencilFunc = s_cmpFunc[(fstencil & BGFX_STENCIL_TEST_MASK) >> BGFX_STENCIL_TEST_SHIFT];
- desc.BackFace.StencilFailOp = s_stencilOp[(bstencil & BGFX_STENCIL_OP_FAIL_S_MASK) >> BGFX_STENCIL_OP_FAIL_S_SHIFT];
- desc.BackFace.StencilDepthFailOp = s_stencilOp[(bstencil & BGFX_STENCIL_OP_FAIL_Z_MASK) >> BGFX_STENCIL_OP_FAIL_Z_SHIFT];
- desc.BackFace.StencilPassOp = s_stencilOp[(bstencil & BGFX_STENCIL_OP_PASS_Z_MASK) >> BGFX_STENCIL_OP_PASS_Z_SHIFT];
- desc.BackFace.StencilFunc = s_cmpFunc[(bstencil&BGFX_STENCIL_TEST_MASK) >> BGFX_STENCIL_TEST_SHIFT];
+ _desc.BackFace.StencilFailOp = s_stencilOp[(bstencil & BGFX_STENCIL_OP_FAIL_S_MASK) >> BGFX_STENCIL_OP_FAIL_S_SHIFT];
+ _desc.BackFace.StencilDepthFailOp = s_stencilOp[(bstencil & BGFX_STENCIL_OP_FAIL_Z_MASK) >> BGFX_STENCIL_OP_FAIL_Z_SHIFT];
+ _desc.BackFace.StencilPassOp = s_stencilOp[(bstencil & BGFX_STENCIL_OP_PASS_Z_MASK) >> BGFX_STENCIL_OP_PASS_Z_SHIFT];
+ _desc.BackFace.StencilFunc = s_cmpFunc[(bstencil&BGFX_STENCIL_TEST_MASK) >> BGFX_STENCIL_TEST_SHIFT];
}
uint32_t setInputLayout(D3D12_INPUT_ELEMENT_DESC* _vertexElements, const VertexDecl& _vertexDecl, const ProgramD3D12& _program, uint8_t _numInstanceData)
@@ -2230,7 +2256,8 @@ data.NumQualityLevels = 0;
bx::StaticMemoryBlockWriter wr(temp->data, temp->size);
DxbcContext dxbc;
- read(&rd, dxbc);
+ bx::Error err;
+ read(&rd, dxbc, &err);
bool patchShader = true;
if (BX_ENABLED(BGFX_CONFIG_DEBUG) )
@@ -2238,7 +2265,7 @@ data.NumQualityLevels = 0;
union { uint32_t offset; void* ptr; } cast = { 0 };
filter(dxbc.shader, dxbc.shader, patchCb0, cast.ptr);
- write(&wr, dxbc);
+ write(&wr, dxbc, &err);
dxbcHash(temp->data + 20, temp->size - 20, temp->data + 4);
@@ -2272,7 +2299,7 @@ data.NumQualityLevels = 0;
uint32_t(program.m_vsh->m_size)/16
};
filter(dxbc.shader, dxbc.shader, patchCb0, cast.ptr);
- write(&wr, dxbc);
+ write(&wr, dxbc, &err);
dxbcHash(temp->data + 20, temp->size - 20, temp->data + 4);
desc.PS.pShaderBytecode = temp->data;
@@ -2616,21 +2643,27 @@ data.NumQualityLevels = 0;
void* m_dxgidll;
D3D_DRIVER_TYPE m_driverType;
- IDXGIAdapter3* m_adapter;
DXGI_ADAPTER_DESC m_adapterDesc;
D3D12_FEATURE_DATA_ARCHITECTURE m_architecture;
D3D12_FEATURE_DATA_D3D12_OPTIONS m_options;
- IDXGIFactory4* m_factory;
-
+#if BX_PLATFORM_WINDOWS
+ IDXGIAdapter3* m_adapter;
+ IDXGIFactory4* m_factory;
IDXGISwapChain3* m_swapChain;
+ ID3D12InfoQueue* m_infoQueue;
+#else
+ IDXGIAdapter* m_adapter;
+ IDXGIFactory2* m_factory;
+ IDXGISwapChain1* m_swapChain;
+#endif // BX_PLATFORM_WINDOWS
+
int64_t m_presentElapsed;
uint16_t m_lost;
uint16_t m_numWindows;
FrameBufferHandle m_windows[BGFX_CONFIG_MAX_FRAME_BUFFERS];
ID3D12Device* m_device;
- ID3D12InfoQueue* m_infoQueue;
TimerQueryD3D12 m_gpuTimer;
OcclusionQueryD3D12 m_occlusionQuery;
@@ -3718,7 +3751,7 @@ data.NumQualityLevels = 0;
uint16_t shaderSize;
bx::read(&reader, shaderSize);
- const DWORD* code = (const DWORD*)reader.getDataPtr();
+ const void* code = reader.getDataPtr();
bx::skip(&reader, shaderSize+1);
m_code = copy(code, shaderSize);
@@ -3769,18 +3802,10 @@ data.NumQualityLevels = 0;
m_width = textureWidth;
m_height = textureHeight;
m_depth = imageContainer.m_depth;
- m_requestedFormat = (uint8_t)imageContainer.m_format;
- m_textureFormat = (uint8_t)imageContainer.m_format;
-
- const TextureFormatInfo& tfi = s_textureFormat[m_requestedFormat];
- const bool convert = DXGI_FORMAT_UNKNOWN == tfi.m_fmt;
-
- uint8_t bpp = getBitsPerPixel(TextureFormat::Enum(m_textureFormat) );
- if (convert)
- {
- m_textureFormat = (uint8_t)TextureFormat::BGRA8;
- bpp = 32;
- }
+ m_requestedFormat = uint8_t(imageContainer.m_format);
+ m_textureFormat = uint8_t(getViableTextureFormat(imageContainer) );
+ const bool convert = m_textureFormat != m_requestedFormat;
+ const uint8_t bpp = getBitsPerPixel(TextureFormat::Enum(m_textureFormat) );
if (imageContainer.m_cubeMap)
{
@@ -4578,7 +4603,9 @@ data.NumQualityLevels = 0;
uint32_t statsNumIndices = 0;
uint32_t statsKeyType[2] = {};
+#if BX_PLATFORM_WINDOWS
m_backBufferColorIdx = m_swapChain->GetCurrentBackBufferIndex();
+#endif // BX_PLATFORM_WINDOWS
const uint64_t f0 = BGFX_STATE_BLEND_FUNC(BGFX_STATE_BLEND_FACTOR, BGFX_STATE_BLEND_FACTOR);
const uint64_t f1 = BGFX_STATE_BLEND_FUNC(BGFX_STATE_BLEND_INV_FACTOR, BGFX_STATE_BLEND_INV_FACTOR);
@@ -4992,7 +5019,7 @@ data.NumQualityLevels = 0;
|| 0 != changedStencil
|| (hasFactor && blendFactor != draw.m_rgba)
|| (0 != (BGFX_STATE_PT_MASK & changedFlags)
- || prim.m_toplogy != s_primInfo[primIndex].m_toplogy)
+ || prim.m_topology != s_primInfo[primIndex].m_topology)
|| currentState.m_scissor != scissor
|| pso != currentPso
|| hasOcclusionQuery)
@@ -5083,12 +5110,12 @@ data.NumQualityLevels = 0;
}
if (0 != (BGFX_STATE_PT_MASK & changedFlags)
- || prim.m_toplogy != s_primInfo[primIndex].m_toplogy)
+ || prim.m_topology != s_primInfo[primIndex].m_topology)
{
const uint64_t pt = newFlags&BGFX_STATE_PT_MASK;
primIndex = uint8_t(pt>>BGFX_STATE_PT_SHIFT);
prim = s_primInfo[primIndex];
- m_commandList->IASetPrimitiveTopology(prim.m_toplogy);
+ m_commandList->IASetPrimitiveTopology(prim.m_topology);
}
if (currentState.m_scissor != scissor)
@@ -5272,6 +5299,7 @@ data.NumQualityLevels = 0;
, processMemoryUsed
);
+#if BX_PLATFORM_WINDOWS
DXGI_QUERY_VIDEO_MEMORY_INFO memInfo;
DX_CHECK(m_adapter->QueryVideoMemoryInfo(0, DXGI_MEMORY_SEGMENT_GROUP_LOCAL, &memInfo) );
@@ -5293,6 +5321,7 @@ data.NumQualityLevels = 0;
, availableForReservation
, currentReservation
);
+#endif // BX_PLATFORM_WINDOWS
pos = 10;
tvm.printf(10, pos++, 0x8e, " Frame: % 7.3f, % 7.3f \x1f, % 7.3f \x1e [ms] / % 6.2f FPS "