diff --git a/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp b/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp index ebe9a67ac..99f897d89 100644 --- a/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp +++ b/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp @@ -120,6 +120,9 @@ bool D3D11DebugAPIWrapper::FetchSRV(const DXBCDebug::BindingSlot &slot) ID3D11Resource *res = NULL; pSRV->GetResource(&res); + if(!res) + return false; + D3D11_SHADER_RESOURCE_VIEW_DESC sdesc; pSRV->GetDesc(&sdesc); diff --git a/renderdoc/driver/vulkan/vk_image_states.cpp b/renderdoc/driver/vulkan/vk_image_states.cpp index 195e24290..7860242d6 100644 --- a/renderdoc/driver/vulkan/vk_image_states.cpp +++ b/renderdoc/driver/vulkan/vk_image_states.cpp @@ -342,7 +342,7 @@ void ImageSubresourceMap::Unsplit() RDCASSERT(aspectCount * levelCount * layerCount * sliceCount == m_values.size()); #define UNSPLIT_INDEX(ASPECT, LEVEL, LAYER, SLICE) \ - (((ASPECT * levelCount + LEVEL) * layerCount + LAYER) * sliceCount + SLICE) + ((((ASPECT)*levelCount + (LEVEL)) * layerCount + (LAYER)) * sliceCount + (SLICE)) while(index < m_values.size() && (canUnsplitAspects || canUnsplitLevels || canUnsplitLayers || canUnsplitDepth)) { @@ -765,7 +765,7 @@ template void BarrierSequence::Merge( template bool BarrierSequence::IsBatchEmpty(uint32_t batchIndex) const { - if(batchIndex > MAX_BATCH_COUNT) + if(batchIndex >= MAX_BATCH_COUNT) return true; for(uint32_t queueFamilyIndex = 0; queueFamilyIndex < MAX_QUEUE_FAMILY_COUNT; ++queueFamilyIndex) { diff --git a/renderdoc/driver/vulkan/vk_pixelhistory.cpp b/renderdoc/driver/vulkan/vk_pixelhistory.cpp index 9ecabcbee..b8c47c157 100644 --- a/renderdoc/driver/vulkan/vk_pixelhistory.cpp +++ b/renderdoc/driver/vulkan/vk_pixelhistory.cpp @@ -1543,6 +1543,7 @@ void CreateOcclusionPool(WrappedVulkan *vk, uint32_t poolSize, VkQueryPool *pQue // TODO: check that occlusion feature is available VkResult vkr = ObjDisp(dev)->CreateQueryPool(Unwrap(dev), &occlusionPoolCreateInfo, NULL, pQueryPool); + RDCASSERTEQUAL(vkr, VK_SUCCESS); VkCommandBuffer cmd = vk->GetNextCmd(); VkCommandBufferBeginInfo beginInfo = {VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, NULL, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT};