Files
renderdoc/util/test/tests/D3D12/D3D12_RGP_Capture.py
T
baldurk d408f77241 Add configuration system for core renderdoc module
* This allows persistent config storage and registering tweak variables that
  works independent of the UI's configuration.
* Config vars can be debug only, which means they will be compiled out in stable
  version releases. This allows for debug-logging tweaks that are available in
  all builds (including nightly builds) for diagnostic purposes, but have zero
  overhead in stable releases.
* Variables have a loose hierarchy defined with _ or . to separate nodes.
2020-03-18 17:34:59 +00:00

47 lines
1.3 KiB
Python

import renderdoc as rd
import rdtest
import os
try:
import tkinter
except ImportError as ex:
tkinter = None
class D3D12_RGP_Capture(rdtest.TestCase):
demos_test_name = 'D3D12_Simple_Triangle'
def check_support(self):
if tkinter is None:
return False, 'tkinter is required but not available'
return super().check_support()
# Need to enable RGP mode before opening the capture
def run(self):
obj: rd.SDObject = rd.SetConfigSetting("AMD.RGP.Enable")
if obj is not None:
obj.data.basic.b = True
super().run()
def check_capture(self):
apiprops: rd.APIProperties = self.controller.GetAPIProperties()
if not apiprops.rgpCapture:
rdtest.log.print("RGP capture not tested")
return
# On D3D12 we need to create a real window
window = tkinter.Tk()
window.geometry("1280x720")
path = self.controller.CreateRGPProfile(rd.CreateWin32WindowingData(int(window.frame(), 16)))
rdtest.log.print("RGP capture created: '{}'".format(path))
if os.path.exists(path) and os.path.getsize(path) > 100:
rdtest.log.success("RGP capture created successfully")
else:
raise rdtest.TestFailureException("RGP capture failed")