mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-30 10:25:43 +00:00
Add new python examples, also available embedded into UI
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# these imports are not strictly necessary, but are convenient
|
||||
import renderdoc
|
||||
import qrenderdoc
|
||||
|
||||
# this is here to give autocomplete when editing the example
|
||||
# in VS Code where it doesn't know about this global
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pyrenderdoc = qrenderdoc.CaptureContext()
|
||||
|
||||
if not pyrenderdoc.IsCaptureLoaded():
|
||||
filename = pyrenderdoc.Extensions().OpenFileName("Choose a capture", "", "*.rdc")
|
||||
|
||||
pyrenderdoc.LoadCapture(filename, renderdoc.ReplayOptions(), filename, False, True)
|
||||
|
||||
mems = {}
|
||||
|
||||
for t in pyrenderdoc.GetTextures():
|
||||
if t.memory == renderdoc.ResourceId():
|
||||
continue
|
||||
|
||||
entry = (
|
||||
t.memoryOffset,
|
||||
t.memoryOffset + t.byteSize,
|
||||
f"[Texture] {pyrenderdoc.GetResourceName(t.resourceId)}",
|
||||
)
|
||||
|
||||
if t.memory not in mems:
|
||||
mems[t.memory] = []
|
||||
|
||||
mems[t.memory].append(entry)
|
||||
|
||||
for b in pyrenderdoc.GetBuffers():
|
||||
if b.memory == renderdoc.ResourceId():
|
||||
continue
|
||||
|
||||
entry = (
|
||||
b.memoryOffset,
|
||||
b.memoryOffset + b.length,
|
||||
f"[Buffer] {pyrenderdoc.GetResourceName(b.resourceId)}",
|
||||
)
|
||||
|
||||
if b.memory not in mems:
|
||||
mems[b.memory] = []
|
||||
|
||||
mems[b.memory].append(entry)
|
||||
|
||||
for m in mems:
|
||||
binds = mems[m]
|
||||
|
||||
for idx, bind1 in enumerate(binds):
|
||||
for bind2 in binds[idx + 1 :]:
|
||||
if bind1[0] < bind2[0] and bind1[1] > bind2[0]:
|
||||
print(f"In memory {pyrenderdoc.GetResourceName(m)} overlap:")
|
||||
print(f" {bind1[0]:08x} - {bind1[1]:08x}: {bind1[2]} ")
|
||||
print(f" {bind2[0]:08x} - {bind2[1]:08x}: {bind2[2]}")
|
||||
Reference in New Issue
Block a user