@@ -1377,9 +1377,18 @@ VK_IMPORT_INSTANCE
1377
1377
g_caps.deviceId = uint16_t (m_deviceProperties.deviceID );
1378
1378
1379
1379
g_caps.supported |= ( 0
1380
- | BGFX_CAPS_TEXTURE_BLIT
1380
+ | BGFX_CAPS_ALPHA_TO_COVERAGE
1381
+ | BGFX_CAPS_BLEND_INDEPENDENT
1382
+ | BGFX_CAPS_COMPUTE
1381
1383
| BGFX_CAPS_DRAW_INDIRECT
1384
+ | BGFX_CAPS_FRAGMENT_DEPTH
1382
1385
| BGFX_CAPS_INSTANCING
1386
+ | BGFX_CAPS_TEXTURE_3D
1387
+ | BGFX_CAPS_TEXTURE_BLIT
1388
+ | BGFX_CAPS_TEXTURE_COMPARE_ALL
1389
+ | BGFX_CAPS_VERTEX_ATTRIB_HALF
1390
+ | BGFX_CAPS_VERTEX_ATTRIB_UINT10
1391
+ | BGFX_CAPS_VERTEX_ID
1383
1392
);
1384
1393
g_caps.limits .maxTextureSize = m_deviceProperties.limits .maxImageDimension2D ;
1385
1394
g_caps.limits .maxFBAttachments = bx::min (uint8_t (m_deviceProperties.limits .maxFragmentOutputAttachments ), uint8_t (BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS) );
@@ -2301,20 +2310,17 @@ VK_IMPORT_DEVICE
2301
2310
pi.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
2302
2311
pi.pNext = NULL ;
2303
2312
pi.waitSemaphoreCount = 0 ;
2304
- pi.pWaitSemaphores = NULL ; // &m_presentDone[0];
2313
+ pi.pWaitSemaphores = NULL ;
2305
2314
pi.swapchainCount = 1 ;
2306
2315
pi.pSwapchains = &m_swapchain;
2307
2316
pi.pImageIndices = &m_backBufferColorIdx;
2308
2317
pi.pResults = NULL ;
2309
2318
VkResult result = vkQueuePresentKHR (m_queueGraphics, &pi);
2310
- if (VK_ERROR_OUT_OF_DATE_KHR == result || VK_SUBOPTIMAL_KHR == result)
2319
+ if (VK_ERROR_OUT_OF_DATE_KHR == result
2320
+ || VK_SUBOPTIMAL_KHR == result)
2311
2321
{
2312
2322
m_needToRefreshSwapchain = true ;
2313
2323
}
2314
- else
2315
- {
2316
- VK_CHECK (result);
2317
- }
2318
2324
}
2319
2325
}
2320
2326
@@ -2613,13 +2619,14 @@ VK_IMPORT_DEVICE
2613
2619
uint32_t samplerFlags = (uint32_t )(texture.m_flags & BGFX_SAMPLER_BITS_MASK);
2614
2620
VkSampler sampler = getSampler (samplerFlags, 1 );
2615
2621
2622
+ const uint32_t size = bx::strideAlign (program.m_vsh ->m_size , align);
2616
2623
uint32_t bufferOffset = scratchBuffer.m_pos ;
2617
2624
VkDescriptorBufferInfo bufferInfo;
2618
2625
bufferInfo.buffer = scratchBuffer.m_buffer ;
2619
2626
bufferInfo.offset = 0 ;
2620
- bufferInfo.range = bx::strideAlign (program. m_vsh -> m_size , align) ;
2627
+ bufferInfo.range = size ;
2621
2628
bx::memCopy (&scratchBuffer.m_data [scratchBuffer.m_pos ], m_vsScratch, program.m_vsh ->m_size );
2622
- scratchBuffer.m_pos += bufferInfo. range ;
2629
+ scratchBuffer.m_pos += size ;
2623
2630
2624
2631
VkWriteDescriptorSet wds[3 ];
2625
2632
wds[0 ].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
@@ -5461,7 +5468,7 @@ VK_DESTROY
5461
5468
void * directAccessPtr = NULL ;
5462
5469
VK_CHECK (vkBindBufferMemory (device, stagingBuffer, stagingDeviceMem, 0 ));
5463
5470
VK_CHECK (vkMapMemory (device, stagingDeviceMem, 0 , ma.allocationSize , 0 , (void **)&directAccessPtr));
5464
- bx::memCopy (directAccessPtr, _mem->data , bci.size );
5471
+ bx::memCopy (directAccessPtr, _mem->data , size_t ( bci.size ) );
5465
5472
vkUnmapMemory (device, stagingDeviceMem);
5466
5473
5467
5474
const uint32_t bpp = bimg::getBitsPerPixel (bimg::TextureFormat::Enum (m_textureFormat) );
@@ -5710,7 +5717,7 @@ VK_DESTROY
5710
5717
uint8_t primIndex = uint8_t (primType >> BGFX_STATE_PT_SHIFT);
5711
5718
PrimInfo prim = s_primInfo[primIndex];
5712
5719
5713
- bool wasCompute = false ;
5720
+ bool wasCompute = false ;
5714
5721
bool viewHasScissor = false ;
5715
5722
bool restoreScissor = false ;
5716
5723
Rect viewScissorRect;
@@ -5726,22 +5733,21 @@ VK_DESTROY
5726
5733
uint32_t statsKeyType[2 ] = {};
5727
5734
5728
5735
VkSemaphore renderWait = m_presentDone[m_backBufferColorIdx];
5729
- VkResult result = vkAcquireNextImageKHR (m_device
5730
- , m_swapchain
5731
- , UINT64_MAX
5732
- , renderWait
5733
- , VK_NULL_HANDLE
5734
- , &m_backBufferColorIdx
5735
- );
5736
- if (VK_ERROR_OUT_OF_DATE_KHR == result || VK_SUBOPTIMAL_KHR == result)
5736
+ VkResult result = vkAcquireNextImageKHR (
5737
+ m_device
5738
+ , m_swapchain
5739
+ , UINT64_MAX
5740
+ , renderWait
5741
+ , VK_NULL_HANDLE
5742
+ , &m_backBufferColorIdx
5743
+ );
5744
+
5745
+ if (VK_ERROR_OUT_OF_DATE_KHR == result
5746
+ || VK_SUBOPTIMAL_KHR == result)
5737
5747
{
5738
5748
m_needToRefreshSwapchain = true ;
5739
5749
return ;
5740
5750
}
5741
- else
5742
- {
5743
- VK_CHECK (result);
5744
- }
5745
5751
5746
5752
// const uint64_t f0 = BGFX_STATE_BLEND_FUNC(BGFX_STATE_BLEND_FACTOR, BGFX_STATE_BLEND_FACTOR);
5747
5753
// const uint64_t f1 = BGFX_STATE_BLEND_FUNC(BGFX_STATE_BLEND_INV_FACTOR, BGFX_STATE_BLEND_INV_FACTOR);
0 commit comments