@@ -795,7 +795,7 @@ void ContextVk::onDestroy(const gl::Context *context)
795795
796796 mCommandQueue .destroy (device);
797797
798- mResourceUseList .releaseResourceUses ();
798+ mResourceUseList .releaseResourceUses (getSharedResourceUsePool () );
799799
800800 mUtils .destroy (mRenderer );
801801
@@ -1143,7 +1143,7 @@ angle::Result ContextVk::setupIndirectDraw(const gl::Context *context,
11431143 mCurrentIndirectBuffer = indirectBuffer;
11441144 }
11451145
1146- mRenderPassCommands ->bufferRead (& mResourceUseList , VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
1146+ mRenderPassCommands ->bufferRead (this , VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
11471147 vk::PipelineStage::DrawIndirect, indirectBuffer);
11481148
11491149 ANGLE_TRY (setupDraw (context, mode, firstVertex, vertexCount, instanceCount,
@@ -1416,10 +1416,9 @@ ANGLE_INLINE angle::Result ContextVk::handleDirtyTexturesImpl(
14161416 }
14171417 }
14181418 // Ensure the image is in read-only layout
1419- commandBufferHelper->imageRead (&mResourceUseList , image.getAspectFlags (), textureLayout,
1420- &image);
1419+ commandBufferHelper->imageRead (this , image.getAspectFlags (), textureLayout, &image);
14211420
1422- textureVk->retainImageViews (& mResourceUseList );
1421+ textureVk->retainImageViews (this );
14231422 }
14241423
14251424 if (executable->hasTextures ())
@@ -1463,7 +1462,7 @@ angle::Result ContextVk::handleDirtyGraphicsVertexBuffers(const gl::Context *con
14631462 vk::BufferHelper *arrayBuffer = arrayBufferResources[attribIndex];
14641463 if (arrayBuffer)
14651464 {
1466- mRenderPassCommands ->bufferRead (& mResourceUseList , VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
1465+ mRenderPassCommands ->bufferRead (this , VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
14671466 vk::PipelineStage::VertexInput, arrayBuffer);
14681467 }
14691468 }
@@ -1481,8 +1480,8 @@ angle::Result ContextVk::handleDirtyGraphicsIndexBuffer(const gl::Context *conte
14811480 mVertexArray ->getCurrentElementArrayBufferOffset (),
14821481 getVkIndexType (mCurrentDrawElementsType ));
14831482
1484- mRenderPassCommands ->bufferRead (& mResourceUseList , VK_ACCESS_INDEX_READ_BIT,
1485- vk::PipelineStage::VertexInput, elementArrayBuffer);
1483+ mRenderPassCommands ->bufferRead (this , VK_ACCESS_INDEX_READ_BIT, vk::PipelineStage::VertexInput ,
1484+ elementArrayBuffer);
14861485
14871486 return angle::Result::Continue;
14881487}
@@ -1544,7 +1543,7 @@ angle::Result ContextVk::handleDirtyGraphicsTransformFeedbackBuffersEmulation(
15441543 {
15451544 vk::BufferHelper *bufferHelper = bufferHelpers[bufferIndex];
15461545 ASSERT (bufferHelper);
1547- mRenderPassCommands ->bufferWrite (& mResourceUseList , VK_ACCESS_SHADER_WRITE_BIT,
1546+ mRenderPassCommands ->bufferWrite (this , VK_ACCESS_SHADER_WRITE_BIT,
15481547 vk::PipelineStage::VertexShader,
15491548 vk::AliasingMode::Disallowed, bufferHelper);
15501549 }
@@ -1583,9 +1582,9 @@ angle::Result ContextVk::handleDirtyGraphicsTransformFeedbackBuffersExtension(
15831582 {
15841583 vk::BufferHelper *bufferHelper = bufferHelpers[bufferIndex];
15851584 ASSERT (bufferHelper);
1586- mRenderPassCommands ->bufferWrite (
1587- & mResourceUseList , VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT ,
1588- vk::PipelineStage::TransformFeedback, vk::AliasingMode::Disallowed, bufferHelper);
1585+ mRenderPassCommands ->bufferWrite (this , VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
1586+ vk::PipelineStage::TransformFeedback ,
1587+ vk::AliasingMode::Disallowed, bufferHelper);
15891588 }
15901589
15911590 const gl::TransformFeedbackBuffersArray<VkBuffer> &bufferHandles =
@@ -2282,7 +2281,7 @@ angle::Result ContextVk::drawArraysIndirect(const gl::Context *context,
22822281
22832282 if (mVertexArray ->getStreamingVertexAttribsMask ().any ())
22842283 {
2285- mRenderPassCommands ->bufferRead (& mResourceUseList , VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
2284+ mRenderPassCommands ->bufferRead (this , VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
22862285 vk::PipelineStage::DrawIndirect, currentIndirectBuf);
22872286
22882287 // We have instanced vertex attributes that need to be emulated for Vulkan.
@@ -2336,7 +2335,7 @@ angle::Result ContextVk::drawElementsIndirect(const gl::Context *context,
23362335
23372336 if (mVertexArray ->getStreamingVertexAttribsMask ().any ())
23382337 {
2339- mRenderPassCommands ->bufferRead (& mResourceUseList , VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
2338+ mRenderPassCommands ->bufferRead (this , VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
23402339 vk::PipelineStage::DrawIndirect, currentIndirectBuf);
23412340
23422341 // We have instanced vertex attributes that need to be emulated for Vulkan.
@@ -3561,7 +3560,7 @@ angle::Result ContextVk::dispatchComputeIndirect(const gl::Context *context, GLi
35613560
35623561 gl::Buffer *glBuffer = getState ().getTargetBuffer (gl::BufferBinding::DispatchIndirect);
35633562 vk::BufferHelper &buffer = vk::GetImpl (glBuffer)->getBuffer ();
3564- mOutsideRenderPassCommands ->bufferRead (& mResourceUseList , VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
3563+ mOutsideRenderPassCommands ->bufferRead (this , VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
35653564 vk::PipelineStage::DrawIndirect, &buffer);
35663565
35673566 commandBuffer->dispatchIndirect (buffer.getBuffer (), indirect);
@@ -4100,8 +4099,8 @@ angle::Result ContextVk::updateActiveImages(const gl::Context *context,
41004099 }
41014100 VkImageAspectFlags aspectFlags = image->getAspectFlags ();
41024101
4103- commandBufferHelper->imageWrite (& mResourceUseList , aspectFlags, imageLayout,
4104- vk::AliasingMode::Allowed, image);
4102+ commandBufferHelper->imageWrite (this , aspectFlags, imageLayout, vk::AliasingMode::Allowed ,
4103+ image);
41054104 }
41064105
41074106 return angle::Result::Continue;
@@ -4176,7 +4175,7 @@ angle::Result ContextVk::flushImpl(const vk::Semaphore *signalSemaphore)
41764175 ANGLE_VK_TRY (this , mPrimaryCommands .end ());
41774176
41784177 Serial serial = getCurrentQueueSerial ();
4179- mResourceUseList .releaseResourceUsesAndUpdateSerials (serial);
4178+ mResourceUseList .releaseResourceUsesAndUpdateSerials (serial, getSharedResourceUsePool () );
41804179
41814180 waitForSwapchainImageIfNecessary ();
41824181
@@ -4478,7 +4477,7 @@ angle::Result ContextVk::onBufferRead(VkAccessFlags readAccessType,
44784477 ANGLE_TRY (flushOutsideRenderPassCommands ());
44794478 }
44804479
4481- mOutsideRenderPassCommands ->bufferRead (& mResourceUseList , readAccessType, readStage, buffer);
4480+ mOutsideRenderPassCommands ->bufferRead (this , readAccessType, readStage, buffer);
44824481
44834482 return angle::Result::Continue;
44844483}
@@ -4498,7 +4497,7 @@ angle::Result ContextVk::onBufferWrite(VkAccessFlags writeAccessType,
44984497 ANGLE_TRY (flushOutsideRenderPassCommands ());
44994498 }
45004499
4501- mOutsideRenderPassCommands ->bufferWrite (& mResourceUseList , writeAccessType, writeStage,
4500+ mOutsideRenderPassCommands ->bufferWrite (this , writeAccessType, writeStage,
45024501 vk::AliasingMode::Disallowed, buffer);
45034502
45044503 return angle::Result::Continue;
@@ -4538,7 +4537,7 @@ angle::Result ContextVk::onImageRead(VkImageAspectFlags aspectFlags,
45384537
45394538 image->recordReadBarrier (aspectFlags, imageLayout,
45404539 &mOutsideRenderPassCommands ->getCommandBuffer ());
4541- image->retain (&mResourceUseList );
4540+ image->retain (&mResourceUseList , getSharedResourceUsePool () );
45424541
45434542 return angle::Result::Continue;
45444543}
@@ -4554,7 +4553,7 @@ angle::Result ContextVk::onImageWrite(VkImageAspectFlags aspectFlags,
45544553
45554554 image->recordWriteBarrier (aspectFlags, imageLayout,
45564555 &mOutsideRenderPassCommands ->getCommandBuffer ());
4557- image->retain (&mResourceUseList );
4556+ image->retain (&mResourceUseList , getSharedResourceUsePool () );
45584557 image->onWrite ();
45594558
45604559 return angle::Result::Continue;
0 commit comments