mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 01:20:42 +00:00
7149302680
* There's not a good accepted terminology for this kind of event, and for historical reasons 'drawcall' has been the accepted term, even though that can be quite confusing when a dispatch or a copy is a 'drawcall'. * This is particularly highlighted by the event browser filters where $draw() includes draws and dispatches, but $dispatch() only includes dispatches, it's hard to intuitively understand why $draw() matches all of these calls. * As a result we've defined the term 'action' to cover these types of events in the same way that we defined 'event' in the first place to mean a single atomic API call.
41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
import rdtest
|
|
import renderdoc as rd
|
|
|
|
|
|
class GL_Entry_Points(rdtest.TestCase):
|
|
demos_test_name = 'GL_Entry_Points'
|
|
|
|
def check_capture(self):
|
|
sdf = self.controller.GetStructuredFile()
|
|
|
|
# The marker name, and the calls that we expect to follow it
|
|
expected = {
|
|
'First Test': ['glUniform1ui'],
|
|
'Second Test': ['glVertexAttribBinding', 'glProgramUniform4f'],
|
|
'Third Test': ['glVertexArrayAttribBinding', 'glUniform4f'],
|
|
}
|
|
|
|
for test in expected.keys():
|
|
marker: rd.ActionDescription = self.find_action(test)
|
|
if marker is None:
|
|
raise rdtest.TestFailureException('Failed to find action {}'.format(test))
|
|
action: rd.ActionDescription = marker.next
|
|
|
|
calls = []
|
|
|
|
ev: rd.APIEvent
|
|
for ev in action.events:
|
|
# skip any events up to and including the marker itself
|
|
if ev.eventId <= marker.eventId:
|
|
continue
|
|
|
|
calls.append(sdf.chunks[ev.chunkIndex].name)
|
|
|
|
for i in range(len(expected[test])):
|
|
if expected[test][i] != calls[i]:
|
|
raise rdtest.TestFailureException('After marker {} got call {} but expected {}'
|
|
.format(test, calls[i], expected[test][i]))
|
|
|
|
rdtest.log.success("API calls are as expected")
|
|
|