]> git.cworth.org Git - apitrace-tests/blob - cli/cli-trim-unused-shaders.script
cli: Use python differ. Fix failures.
[apitrace-tests] / cli / cli-trim-unused-shaders.script
1 # Generate reference images from unmodified trace.
2
3 # We carefully generate images only for desired frames (dropping the
4 # first frame that draws using shaders).
5
6 rm_and_mkdir glxsimple-ref
7 apitrace dump-images --calls=10,47,50,71,87,88 --call-nos=no -o ./glxsimple-ref/ glxsimple.trace
8
9 # Trim to the same callset used to generate reference images
10
11 apitrace trim --auto --calls=10,47,50,71,87,88 glxsimple.trace
12
13 # Verify that we actually trimmed what we wanted to
14
15 apitrace diff --diff=python glxsimple.trace glxsimple-trim.trace
16 expect r"""  glXChooseVisual(37134976, 0, (GLX_RGBA, GLX_RED_SIZE, GLX_RED_SIZE, GLX_GREEN_SIZE, GLX_RED_SIZE, GLX_BLUE_SIZE, GLX_RED_SIZE, GLX_ALPHA_SIZE, GLX_RED_SIZE, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, 24, GLX_STENCIL_SIZE, GLX_RED_SIZE, GLX_X_VISUAL_TYPE, GLX_DIRECT_COLOR, 0)) = ([37179128, 34, 0, 24, 5, 16711680, 65280, 255, 256, 8])
17   glXCreateContext(37134976, ([37179128, 34, 0, 24, 5, 16711680, 65280, 255, 256, 8]), 0, True) = 37241648
18   glXMakeCurrent(37134976, 41943041, 37241648) = True
19   glViewport(0, 0, 64, 64)
20   glMatrixMode(GL_PROJECTION)
21   glLoadIdentity()
22   glOrtho(0.0, 64.0, 64.0, 0.0, 0.0, 1.0)
23   glMatrixMode(GL_MODELVIEW)
24   glClearColor(0.0, 0.0, 1.0, 1.0)
25   glClear((GL_COLOR_BUFFER_BIT))
26   glXSwapBuffers(37134976, 41943041)
27 - glCreateShader(GL_VERTEX_SHADER) = 7
28 - glShaderSource(7, 1, ('void main()\n{\n        gl_Position = ftransform();\n}\n'), 0)
29 - glCompileShader(7)
30 - glCreateShader(GL_FRAGMENT_SHADER) = 8
31 - glShaderSource(8, 1, ('#version 120\nuniform vec4 color;\nvoid main()\n{\n        gl_FragColor = color;\n}\n'), 0)
32 - glCompileShader(8)
33 - glCreateProgram() = 9
34 - glAttachShader(9, 7)
35 - glAttachShader(9, 8)
36 - glLinkProgram(9)
37 - glUseProgram(9)
38 - glGetUniformLocation(9, color) = 0
39 - glUniform4f(0, 0.0, 1.0, 0.0, 1.0)
40 - glBegin(GL_QUADS)
41 - glVertex2f(0.0, 0.0)
42 - glVertex2f(64.0, 0.0)
43 - glVertex2f(64.0, 64.0)
44 - glVertex2f(0.0, 64.0)
45 - glEnd()
46   glUseProgram(0)
47 - glXSwapBuffers(37134976, 41943041)
48   glGenTextures(1, (1))
49   glBindTexture(GL_TEXTURE_2D, 1)
50   glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA, 1, 1, 0, GL_RGB, GL_UNSIGNED_BYTE, blob(3))
51   glEnable(GL_TEXTURE_2D)
52   glBegin(GL_QUADS)
53   glTexCoord2f(0.0, 0.0)
54   glVertex2f(0.0, 0.0)
55   glTexCoord2f(1.0, 0.0)
56   glVertex2f(64.0, 0.0)
57   glTexCoord2f(1.0, 1.0)
58   glVertex2f(64.0, 64.0)
59   glTexCoord2f(0.0, 1.0)
60   glVertex2f(0.0, 64.0)
61   glEnd()
62   glDisable(GL_TEXTURE_2D)
63   glXSwapBuffers(37134976, 41943041)
64   glClearColor(1.0, 0.0, 0.0, 1.0)
65   glClear((GL_COLOR_BUFFER_BIT))
66   glXSwapBuffers(37134976, 41943041)
67   glCreateShader(GL_VERTEX_SHADER) = 10
68   glShaderSource(10, 1, ('void main()\n{\n        gl_Position = ftransform();\n}\n'), 0)
69   glCompileShader(10)
70   glCreateShader(GL_FRAGMENT_SHADER) = 11
71   glShaderSource(11, 1, ('#version 120\nuniform vec4 color;\nvoid main()\n{\n        gl_FragColor = color;\n}\n'), 0)
72   glCompileShader(11)
73   glCreateProgram() = 12
74   glAttachShader(12, 10)
75   glAttachShader(12, 11)
76   glLinkProgram(12)
77   glUseProgram(12)
78   glGetUniformLocation(12, color) = 0
79   glUniform4f(0, 1.0, 0.0, 1.0, 1.0)
80   glBegin(GL_QUADS)
81   glVertex2f(0.0, 0.0)
82   glVertex2f(64.0, 0.0)
83   glVertex2f(64.0, 64.0)
84   glVertex2f(0.0, 64.0)
85   glEnd()
86   glUseProgram(0)
87   glXSwapBuffers(37134976, 41943041)
88   glGenTextures(1, (2))
89   glBindTexture(GL_TEXTURE_2D, 2)
90   glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA, 1, 1, 0, GL_RGB, GL_UNSIGNED_BYTE, blob(3))
91   glEnable(GL_TEXTURE_2D)
92   glBegin(GL_QUADS)
93   glTexCoord2f(0.0, 0.0)
94   glVertex2f(0.0, 0.0)
95   glTexCoord2f(1.0, 0.0)
96   glVertex2f(64.0, 0.0)
97   glTexCoord2f(1.0, 1.0)
98   glVertex2f(64.0, 64.0)
99   glTexCoord2f(0.0, 1.0)
100   glVertex2f(0.0, 64.0)
101   glEnd()
102   glDisable(GL_TEXTURE_2D)
103   glXSwapBuffers(37134976, 41943041)
104   glXDestroyContext(37134976, 37241648)
105 """
106
107 # Generate output images for all frames in the trimmed trace
108
109 rm_and_mkdir glxsimple-out
110 apitrace dump-images --call-nos=no -o ./glxsimple-out/ glxsimple-trim.trace
111
112 # Compare output to reference images
113
114 apitrace diff-images -v ./glxsimple-ref ./glxsimple-out
115 expect r"""Comparing ./glxsimple-ref/0000000000.png and ./glxsimple-out/0000000000.png ... MATCH
116 Comparing ./glxsimple-ref/0000000001.png and ./glxsimple-out/0000000001.png ... MATCH
117 Comparing ./glxsimple-ref/0000000002.png and ./glxsimple-out/0000000002.png ... MATCH
118 Comparing ./glxsimple-ref/0000000003.png and ./glxsimple-out/0000000003.png ... MATCH
119 Comparing ./glxsimple-ref/0000000004.png and ./glxsimple-out/0000000004.png ... MATCH
120 """