diff options
author | 2019-11-13 04:08:23 +0100 | |
---|---|---|
committer | 2019-11-12 22:08:23 -0500 | |
commit | 0c70101b74db61f883fdd7907a4975ffff735044 (patch) | |
tree | 067ae1c831088d6853b6f443e5a05a4c5d8cd7aa /3rdparty/bgfx/src/renderer_vk.cpp | |
parent | c089bea7011de9ca78f43979d902978a113d33e2 (diff) |
Sync bgfx, bx and bimg with upstream; fix the hlsl fs_chroma.sc matrix transposition properly (#5875)
* Sync bgfx with upstream revision 280420d
* Sync bx with upstream revision 267727d
* Sync bimg with upstream revision c1bab10
* Use bgfx helper functions to ensure correct matrix orientation
* Rebuild hlsl chain
Diffstat (limited to '3rdparty/bgfx/src/renderer_vk.cpp')
-rw-r--r-- | 3rdparty/bgfx/src/renderer_vk.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/3rdparty/bgfx/src/renderer_vk.cpp b/3rdparty/bgfx/src/renderer_vk.cpp index 61ff5862d27..3840c7ad82b 100644 --- a/3rdparty/bgfx/src/renderer_vk.cpp +++ b/3rdparty/bgfx/src/renderer_vk.cpp @@ -216,7 +216,7 @@ VK_IMPORT_DEVICE { VK_FORMAT_R32G32B32A32_SFLOAT, VK_FORMAT_R32G32B32A32_SFLOAT, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED }, // RGBA32F { VK_FORMAT_B5G6R5_UNORM_PACK16, VK_FORMAT_B5G6R5_UNORM_PACK16, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED }, // R5G6B5 { VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED }, // RGBA4 - { VK_FORMAT_B5G5R5A1_UNORM_PACK16, VK_FORMAT_B5G5R5A1_UNORM_PACK16, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED }, // RGB5A1 + { VK_FORMAT_A1R5G5B5_UNORM_PACK16, VK_FORMAT_A1R5G5B5_UNORM_PACK16, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED }, // RGB5A1 { VK_FORMAT_A2R10G10B10_UNORM_PACK32, VK_FORMAT_A2R10G10B10_UNORM_PACK32, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED }, // RGB10A2 { VK_FORMAT_B10G11R11_UFLOAT_PACK32, VK_FORMAT_B10G11R11_UFLOAT_PACK32, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED }, // RG11B10F { VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED }, // UnknownDepth @@ -2761,45 +2761,49 @@ VK_IMPORT_DEVICE releaseSwapchainFramebuffer(); releaseSwapchain(); -#if 1 uint32_t numPresentModes(10); VkPresentModeKHR presentModes[10]; vkGetPhysicalDeviceSurfacePresentModesKHR(m_physicalDevice, m_surface, &numPresentModes, presentModes); - // find the best match... uint32_t presentModeIdx = numPresentModes; - VkPresentModeKHR preferredPresentMode[] = { + static const VkPresentModeKHR preferredPresentMode[] = + { VK_PRESENT_MODE_FIFO_KHR, VK_PRESENT_MODE_FIFO_RELAXED_KHR, VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_IMMEDIATE_KHR, }; - bool has_vsync[] = {true, true, true, false}; - bool vsync = (flags & BGFX_RESET_VSYNC ? true : false); + static const bool hasVsync[] = { true, true, true, false }; + BX_STATIC_ASSERT(BX_COUNTOF(preferredPresentMode) == BX_COUNTOF(hasVsync) ); + + const bool vsync = !!(flags & BGFX_RESET_VSYNC); for (uint32_t ii = 0; ii < BX_COUNTOF(preferredPresentMode); ++ii) { for (uint32_t jj = 0; jj < numPresentModes; ++jj) { - if ((presentModes[jj] == preferredPresentMode[ii]) && (vsync == has_vsync[ii])) + if (presentModes[jj] == preferredPresentMode[ii] + && vsync == hasVsync[ii]) { presentModeIdx = jj; - BX_TRACE("present mode: %d", (int)preferredPresentMode[ii]); + BX_TRACE("present mode: %d", preferredPresentMode[ii]); break; } } + if (presentModeIdx < numPresentModes) { break; } } + if (presentModeIdx == numPresentModes) { presentModeIdx = 0; } + m_sci.presentMode = presentModes[presentModeIdx]; - //bx::printf("%d %d %d %d %d\n", flags, BGFX_RESET_VSYNC, presentModeIdx, presentModes[presentModeIdx], numPresentModes); -#endif + VkSurfaceCapabilitiesKHR surfaceCapabilities; VK_CHECK(vkGetPhysicalDeviceSurfaceCapabilitiesKHR(m_physicalDevice, m_surface, &surfaceCapabilities) ); @@ -3113,7 +3117,7 @@ VK_IMPORT_DEVICE : VK_POLYGON_MODE_FILL ; _desc.cullMode = s_cullMode[cull]; - _desc.frontFace = VK_FRONT_FACE_CLOCKWISE; + _desc.frontFace = (_state&BGFX_STATE_FRONT_CCW) ? VK_FRONT_FACE_COUNTER_CLOCKWISE : VK_FRONT_FACE_CLOCKWISE; _desc.depthBiasEnable = VK_FALSE; _desc.depthBiasConstantFactor = 0.0f; _desc.depthBiasClamp = 0.0f; |