mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-09-23 22:25:55 +00:00
Add const overload of subresource state lookup by aspect
* We also rename these functions to be distinct, since it's too easy for an aspect bit to be automatically cast to an aspect index.
This commit is contained in:
@@ -710,7 +710,7 @@ template <typename Map, typename Pair>
|
||||
Pair *ImageSubresourceMap::SubresourceRangeIterTemplate<Map, Pair>::operator->()
|
||||
{
|
||||
FixSubRange();
|
||||
m_value.m_state = &m_map->SubresourceValue(m_aspectIndex, m_level, m_layer, m_slice);
|
||||
m_value.m_state = &m_map->SubresourceIndexValue(m_aspectIndex, m_level, m_layer, m_slice);
|
||||
return &m_value;
|
||||
}
|
||||
template ImageSubresourceMap::SubresourcePairRef *ImageSubresourceMap::SubresourceRangeIterTemplate<
|
||||
@@ -722,7 +722,7 @@ template <typename Map, typename Pair>
|
||||
Pair &ImageSubresourceMap::SubresourceRangeIterTemplate<Map, Pair>::operator*()
|
||||
{
|
||||
FixSubRange();
|
||||
m_value.m_state = &m_map->SubresourceValue(m_aspectIndex, m_level, m_layer, m_slice);
|
||||
m_value.m_state = &m_map->SubresourceIndexValue(m_aspectIndex, m_level, m_layer, m_slice);
|
||||
return m_value;
|
||||
}
|
||||
template ImageSubresourceMap::SubresourcePairRef &ImageSubresourceMap::SubresourceRangeIterTemplate<
|
||||
@@ -1467,7 +1467,7 @@ InitReqType ImageState::MaxInitReq(const ImageSubresourceRange &range, InitPolic
|
||||
VkImageLayout ImageState::GetImageLayout(VkImageAspectFlagBits aspect, uint32_t mipLevel,
|
||||
uint32_t arrayLayer) const
|
||||
{
|
||||
return subresourceStates.SubresourceValue(aspect, mipLevel, arrayLayer, 0).newLayout;
|
||||
return subresourceStates.SubresourceAspectValue(aspect, mipLevel, arrayLayer, 0).newLayout;
|
||||
}
|
||||
|
||||
void ImageState::BeginCapture()
|
||||
|
||||
@@ -381,7 +381,7 @@ void VulkanResourceManager::SerialiseImageStates(SerialiserType &ser,
|
||||
++it, ++aspectIndex)
|
||||
{
|
||||
}
|
||||
auto currentSub = current->subresourceStates.SubresourceValue(
|
||||
auto currentSub = current->subresourceStates.SubresourceIndexValue(
|
||||
aspectIndex, subit->range().baseMipLevel, subit->range().baseArrayLayer,
|
||||
subit->range().baseDepthSlice);
|
||||
RDCASSERT(currentSub.refType == subit->state().refType ||
|
||||
|
||||
@@ -1449,27 +1449,38 @@ public:
|
||||
|
||||
void FromImgRefs(const ImgRefs &imgRefs);
|
||||
|
||||
inline ImageSubresourceState &SubresourceValue(uint32_t aspectIndex, uint32_t level,
|
||||
uint32_t layer, uint32_t slice)
|
||||
inline ImageSubresourceState &SubresourceIndexValue(uint32_t aspectIndex, uint32_t level,
|
||||
uint32_t layer, uint32_t slice)
|
||||
{
|
||||
return m_values[SubresourceIndex(aspectIndex, level, layer, slice)];
|
||||
}
|
||||
inline ImageSubresourceState &SubresourceValue(VkImageAspectFlagBits aspect, uint32_t level,
|
||||
uint32_t layer, uint32_t slice)
|
||||
inline const ImageSubresourceState &SubresourceIndexValue(uint32_t aspectIndex, uint32_t level,
|
||||
uint32_t layer, uint32_t slice) const
|
||||
{
|
||||
return m_values[SubresourceIndex(aspectIndex, level, layer, slice)];
|
||||
}
|
||||
inline ImageSubresourceState &SubresourceAspectValue(VkImageAspectFlagBits aspect, uint32_t level,
|
||||
uint32_t layer, uint32_t slice)
|
||||
{
|
||||
uint32_t aspectIndex = 0;
|
||||
for(auto it = ImageAspectFlagIter::begin(GetImageInfo().Aspects());
|
||||
it != ImageAspectFlagIter::end() && *it != aspect; ++it, ++aspectIndex)
|
||||
{
|
||||
}
|
||||
return SubresourceValue(aspectIndex, level, layer, slice);
|
||||
return SubresourceIndexValue(aspectIndex, level, layer, slice);
|
||||
}
|
||||
inline const ImageSubresourceState &SubresourceAspectValue(VkImageAspectFlagBits aspect,
|
||||
uint32_t level, uint32_t layer,
|
||||
uint32_t slice) const
|
||||
{
|
||||
uint32_t aspectIndex = 0;
|
||||
for(auto it = ImageAspectFlagIter::begin(GetImageInfo().Aspects());
|
||||
it != ImageAspectFlagIter::end() && *it != aspect; ++it, ++aspectIndex)
|
||||
{
|
||||
}
|
||||
return SubresourceIndexValue(aspectIndex, level, layer, slice);
|
||||
}
|
||||
|
||||
inline const ImageSubresourceState &SubresourceValue(uint32_t aspectIndex, uint32_t level,
|
||||
uint32_t layer, uint32_t slice) const
|
||||
{
|
||||
return m_values[SubresourceIndex(aspectIndex, level, layer, slice)];
|
||||
}
|
||||
inline void Split(const ImageSubresourceRange &range)
|
||||
{
|
||||
Split(range.aspectMask != GetImageInfo().Aspects(),
|
||||
|
||||
Reference in New Issue
Block a user