1. 23 Jul, 2020 3 commits
  2. 22 Jul, 2020 3 commits
  3. 21 Jul, 2020 7 commits
  4. 20 Jul, 2020 4 commits
  5. 18 Jul, 2020 1 commit
  6. 17 Jul, 2020 4 commits
  7. 16 Jul, 2020 4 commits
  8. 15 Jul, 2020 1 commit
  9. 14 Jul, 2020 3 commits
  10. 13 Jul, 2020 5 commits
  11. 11 Jul, 2020 3 commits
    • Fix copying of multiple image layers · ad65826a
      Nicolas Capens authored
      Only a single layer was being copied in the case of 2D array to 2D array
      copies. In the case of 2D array to 3D image copies, or vice-versa, the
      extent depth is the same as the layer count as per the Vulkan
      requirements, but this relied on the layer pitch to be the same as the
      slice pitch, which isn't true when layers contain multiple mipmap
      levels.
      
      Both issues have been addressed by adding a loop to iterate over the
      layers, adjusting the pitch in case a layer is copied to/from a slice.
      The inner loop for copying slices to slices is used for 3D image to
      3D image copies, and for multisample 2D image to multisample 2D image
      copies (which can also have multiple layers).
      
      Also clarify the Image::getLastLayerIndex() and getLastMipLevel()
      methods should not be used for VkImageSubresourceLayers structures used
      by copy, blit, and resolve operations (they require explicit layer and
      level counts). VkImageSubresourceRange is only for image view creation,
      memory barriers, and clear operations, which accept the use of
      VK_REMAINING_ARRAY_LAYERS and VK_REMAINING_MIP_LEVELS.
      
      Bug: b/159666631
      Bug: swiftshader:152
      Change-Id: If998795e2b5e55950cc9fa23373a7300b6d2e0fc
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/46132
      Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
      Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Kokoro-Result: kokoro <noreply+kokoro@google.com>
      Reviewed-by: 's avatarAntonio Maiorano <amaiorano@google.com>
    • Fix copying of multisample images · 2aace0d7
      Nicolas Capens authored
      Multisample images can be copied to other multisample images with the
      same number of samples, without undergoing multisample resolve.
      
      We were using the Blitter::copy() code path both for vkCmdCopyImage and
      attachment resolve operations at the end of subpasses, leading to
      resolve operations happening on copy commands. They are now detangled
      and copy() is able to handle multiple samples the same way as 3D
      slices.
      
      Bug: b/159210008
      Change-Id: I4c285ca7ca58e9f8c6cf7bd942041e038b042cb9
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/46129
      Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
      Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Kokoro-Result: kokoro <noreply+kokoro@google.com>
      Reviewed-by: 's avatarAntonio Maiorano <amaiorano@google.com>
    • Fix image slice / plane name usage · c55fd97b
      Nicolas Capens authored
      Image planes have a distinct meaning in Vulkan, signifying the disjoint
      memory regions which store components of a texel format. Typically this
      includes YCbCr formats that can have 2 or 3 planes for luminance and
      chroma data.
      
      Slices refer to 2D sections of 3D images. Currently we also use slices
      for storing each sample of a multisample image separately. Note only
      2D images can be multisampled, so there are no 3D images with slices
      for the depth and the number of samples.
      
      Bug: b/159210008
      Change-Id: I4b70a7b8bb49e79c7494e28aa8280752a5b9727d
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/46288
      Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
      Kokoro-Result: kokoro <noreply+kokoro@google.com>
      Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Reviewed-by: 's avatarAntonio Maiorano <amaiorano@google.com>
  12. 10 Jul, 2020 2 commits