File: D3D12_RenderTarget_Binds.py

package info (click to toggle)
renderdoc 1.11%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 93,988 kB
  • sloc: cpp: 662,188; ansic: 350,046; python: 22,871; xml: 14,473; java: 11,365; cs: 7,181; makefile: 6,703; yacc: 5,682; ruby: 4,648; perl: 3,461; sh: 2,277; php: 2,119; lisp: 1,835; javascript: 1,524; tcl: 1,068; ml: 747
file content (84 lines) | stat: -rw-r--r-- 3,246 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import renderdoc as rd
import rdtest


class D3D12_RenderTarget_Binds(rdtest.TestCase):
    demos_test_name = 'D3D12_RenderTarget_Binds'

    def check_capture(self):
        # find the clear
        draw = self.find_draw("ClearRenderTargetView")

        self.controller.SetFrameEvent(draw.eventId, False)

        pipe: rd.PipeState = self.controller.GetPipelineState()

        self.check_pixel_value(draw.copyDestination, 0.5, 0.5, [1.0, 0.0, 1.0, 1.0])

        self.check('Swapchain' in self.get_resource(draw.copyDestination).name)

        rdtest.log.success("Picked value for clear is as expected")

        draw = draw.next

        self.controller.SetFrameEvent(draw.eventId, False)

        pipe: rd.PipeState = self.controller.GetPipelineState()

        rtvs = pipe.GetOutputTargets()
        self.check(len(rtvs) == 2)

        self.check_triangle(out=rtvs[0].resourceId, back=[0.0, 1.0, 0.0, 1.0], fore=[1.0, 0.0, 0.0, 1.0])
        self.check_triangle(out=rtvs[1].resourceId, back=[0.0, 1.0, 0.0, 1.0], fore=[0.0, 0.0, 1.0, 1.0])
        self.check(self.get_resource(rtvs[0].resourceId).name == 'TextureA')
        self.check(self.get_resource(rtvs[1].resourceId).name == 'TextureB')

        rdtest.log.success("RTVs at first draw are as expected")

        draw = draw.next

        self.controller.SetFrameEvent(draw.eventId, False)

        pipe: rd.PipeState = self.controller.GetPipelineState()

        rtvs = pipe.GetOutputTargets()
        self.check(len(rtvs) == 2)

        self.check_triangle(out=rtvs[0].resourceId, back=[0.0, 1.0, 0.0, 1.0], fore=[1.0, 1.0, 0.0, 1.0])
        self.check_triangle(out=rtvs[1].resourceId, back=[0.0, 1.0, 0.0, 1.0], fore=[0.0, 1.0, 1.0, 1.0])
        self.check(self.get_resource(rtvs[0].resourceId).name == 'TextureC')
        self.check(self.get_resource(rtvs[1].resourceId).name == 'TextureD')

        rdtest.log.success("RTVs at second draw are as expected")

        draw = draw.next

        self.controller.SetFrameEvent(draw.eventId, False)

        pipe: rd.PipeState = self.controller.GetPipelineState()

        rtvs = pipe.GetOutputTargets()
        self.check(len(rtvs) == 2)

        self.check_triangle(out=rtvs[0].resourceId, back=[0.0, 1.0, 0.0, 1.0], fore=[1.0, 0.0, 0.0, 1.0])
        self.check_triangle(out=rtvs[1].resourceId, back=[0.0, 1.0, 0.0, 1.0], fore=[0.0, 0.0, 1.0, 1.0])
        self.check(self.get_resource(rtvs[0].resourceId).name == 'TextureE')
        self.check(self.get_resource(rtvs[1].resourceId).name == 'TextureF')

        rdtest.log.success("RTVs at third draw are as expected")

        draw = draw.next

        self.controller.SetFrameEvent(draw.eventId, False)

        pipe: rd.PipeState = self.controller.GetPipelineState()

        rtvs = pipe.GetOutputTargets()
        self.check(len(rtvs) == 2)

        self.check_triangle(out=rtvs[0].resourceId, back=[0.0, 1.0, 0.0, 1.0], fore=[1.0, 1.0, 0.0, 1.0])
        self.check_triangle(out=rtvs[1].resourceId, back=[0.0, 1.0, 0.0, 1.0], fore=[0.0, 1.0, 1.0, 1.0])
        self.check(self.get_resource(rtvs[0].resourceId).name == 'TextureG')
        self.check(self.get_resource(rtvs[1].resourceId).name == 'TextureH')

        rdtest.log.success("RTVs at fourth draw are as expected")