diff --git a/renderdocui/Code/CommonPipelineState.cs b/renderdocui/Code/CommonPipelineState.cs index d490a3b8a..820f95111 100644 --- a/renderdocui/Code/CommonPipelineState.cs +++ b/renderdocui/Code/CommonPipelineState.cs @@ -1005,9 +1005,9 @@ namespace renderdocui.Code descsets = m_Vulkan.compute.DescSets; ShaderStageBits mask = (ShaderStageBits)(1 << (int)stage); - for (int set = 0; set < m_Vulkan.graphics.DescSets.Length; set++) + for (int set = 0; set < descsets.Length; set++) { - var descset = m_Vulkan.graphics.DescSets[set]; + var descset = descsets[set]; for (int slot = 0; slot < descset.bindings.Length; slot++) { var bind = descset.bindings[slot]; diff --git a/renderdocui/Windows/TextureViewer.cs b/renderdocui/Windows/TextureViewer.cs index d70bb57d6..1097bc20b 100644 --- a/renderdocui/Windows/TextureViewer.cs +++ b/renderdocui/Windows/TextureViewer.cs @@ -268,7 +268,7 @@ namespace renderdocui.Windows else if (compute) { // only return compute resources for one stage - if (stage == ShaderStageType.Pixel) + if (stage == ShaderStageType.Pixel || stage == ShaderStageType.Compute) return core.CurPipelineState.GetReadWriteResources(ShaderStageType.Compute); else return new Dictionary(); @@ -303,7 +303,7 @@ namespace renderdocui.Windows else if (compute) { // only return compute resources for one stage - if (stage == ShaderStageType.Pixel) + if (stage == ShaderStageType.Pixel || stage == ShaderStageType.Compute) return core.CurPipelineState.GetReadOnlyResources(ShaderStageType.Compute); else return new Dictionary(); @@ -1178,6 +1178,11 @@ namespace renderdocui.Windows else { prev.Init(); + IntPtr handle = prev.ThumbnailHandle; + m_Core.Renderer.BeginInvoke((ReplayRenderer rep) => + { + m_Output.AddThumbnail(handle, ResourceId.Null); + }); } prev.Tag = follow; @@ -1308,6 +1313,7 @@ namespace renderdocui.Windows var curDraw = m_Core.GetDrawcall(frameID, eventID); bool copy = curDraw != null && (curDraw.flags & (DrawcallFlags.Copy|DrawcallFlags.Resolve)) != 0; + bool compute = curDraw != null && (curDraw.flags & (DrawcallFlags.Dispatch)) != 0; for(int rt=0; rt < RTs.Length; rt++) { @@ -1351,6 +1357,8 @@ namespace renderdocui.Windows ShaderStageType.Pixel }; + if (compute) stages = new ShaderStageType[] { ShaderStageType.Compute }; + // display resources used for all stages foreach (ShaderStageType stage in stages) {