mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-12 13:00:32 +00:00
Fix access to texel buffers
This commit is contained in:
@@ -585,12 +585,17 @@ ShaderDebugTrace *Debugger::BeginDebug(DebugAPIWrapper *apiWrapper, const Shader
|
||||
// sampler, so accessing the original type might be non-trivial at point of access
|
||||
uint32_t texType = DebugAPIWrapper::Float_Texture;
|
||||
|
||||
if(imageTypes[type.InnerType()].dim == Dim::Buffer)
|
||||
Id imgid = type.InnerType();
|
||||
|
||||
if(innertype.type == DataType::SampledImageType)
|
||||
imgid = sampledImageTypes[imgid].baseId;
|
||||
|
||||
if(imageTypes[imgid].dim == Dim::Buffer)
|
||||
texType |= DebugAPIWrapper::Buffer_Texture;
|
||||
|
||||
if(imageTypes[type.InnerType()].retType.type == Op::TypeInt)
|
||||
if(imageTypes[imgid].retType.type == Op::TypeInt)
|
||||
{
|
||||
if(imageTypes[type.InnerType()].retType.signedness)
|
||||
if(imageTypes[imgid].retType.signedness)
|
||||
texType |= DebugAPIWrapper::SInt_Texture;
|
||||
else
|
||||
texType |= DebugAPIWrapper::UInt_Texture;
|
||||
|
||||
@@ -485,7 +485,7 @@ public:
|
||||
|
||||
// create our own view (if we haven't already for this view) so we can promote to array
|
||||
VkImageView sampleView = m_SampleViews[GetResID(view)];
|
||||
if(sampleView == VK_NULL_HANDLE)
|
||||
if(sampleView == VK_NULL_HANDLE && view != VK_NULL_HANDLE)
|
||||
{
|
||||
VkImageViewCreateInfo viewInfo = {VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO};
|
||||
viewInfo.image = m_pDriver->GetResourceManager()->GetCurrentHandle<VkImage>(viewProps.image);
|
||||
@@ -708,7 +708,7 @@ public:
|
||||
|
||||
if(buffer)
|
||||
{
|
||||
writeSets[0].pTexelBufferView = &bufferView;
|
||||
writeSets[0].pTexelBufferView = UnwrapPtr(bufferView);
|
||||
writeSets[0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER;
|
||||
}
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@ layout(set = 0, binding = 5, std430) buffer storebuftype
|
||||
|
||||
//layout(set = 0, binding = 6, rgba32f) uniform coherent image2D storeImage;
|
||||
|
||||
//layout(set = 0, binding = 7, rgba32f) uniform coherent samplerBuffer texBuffer;
|
||||
layout(set = 0, binding = 7) uniform samplerBuffer texBuffer;
|
||||
//layout(set = 0, binding = 8, rgba32f) uniform coherent imageBuffer storeTexBuffer;
|
||||
|
||||
layout(set = 0, binding = 20) uniform sampler2DArray queryTest;
|
||||
@@ -909,6 +909,11 @@ void main()
|
||||
Color = vec4(vec3(textureSize(queryTestMS)), 1.0f);
|
||||
break;
|
||||
}
|
||||
case 111:
|
||||
{
|
||||
Color = texelFetch(texBuffer, int(zeroi+2));
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user