Created
September 30, 2013 11:11
-
-
Save bwilkins/6762310 to your computer and use it in GitHub Desktop.
Apitrace of simple OpenGL app in Go (doesn't work) vs virtually the same app in C/Objective-C (works). Only thing I can see that's really overly different is the pointer length in the go application, which appear to be 2 bytes(?) shorter...
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
0 CGLSetOption(pname = kCGLGOUseErrorHandler, param = 0) = kCGLNoError | |
1 CGLChoosePixelFormat(attribs = {kCGLPFADoubleBuffer, kCGLPFAOpenGLProfile, 12800, kCGLPFAColorSize, 24, kCGLPFAAlphaSize, 8, 0}, pix = &0x17a1a400, npix = &2) = kCGLNoError | |
2 CGLSetOption(pname = kCGLGOUseErrorHandler, param = 0) = kCGLNoError | |
3 CGLCreateContext(pix = 0x17a1a400, share = NULL, ctx = &0x1900ec00) = kCGLNoError | |
4 CGLSetParameter(ctx = 0x1900ec00, pname = 1236, params = &396468976) = kCGLNoError | |
5 CGLSetSurface(ctx = 0x1900ec00, cid = 0x1ad77, wid = 11190, sid = 1211499212) = kCGLNoError | |
6 CGLSetCurrentContext(ctx = 0x1900ec00) = kCGLNoError | |
7 glViewport(x = 0, y = 0, width = 800, height = 600) | |
8 glScissor(x = 0, y = 0, width = 800, height = 600) | |
9 CGLDescribePixelFormat(pix = 0x17a1a400, pix_num = 0, attrib = kCGLPFAAccelerated, value = &1) = kCGLNoError | |
10 CGLDescribePixelFormat(pix = 0x17a1a400, pix_num = 0, attrib = kCGLPFAAlphaSize, value = &8) = kCGLNoError | |
11 CGLDescribePixelFormat(pix = 0x17a1a400, pix_num = 0, attrib = kCGLPFAColorSize, value = &32) = kCGLNoError | |
12 CGLDescribePixelFormat(pix = 0x17a1a400, pix_num = 0, attrib = kCGLPFADepthSize, value = &0) = kCGLNoError | |
13 CGLDescribePixelFormat(pix = 0x17a1a400, pix_num = 0, attrib = kCGLPFAStencilSize, value = &0) = kCGLNoError | |
14 CGLDescribePixelFormat(pix = 0x17a1a400, pix_num = 0, attrib = kCGLPFAAccumSize, value = &0) = kCGLNoError | |
15 CGLDescribePixelFormat(pix = 0x17a1a400, pix_num = 0, attrib = kCGLPFAAuxBuffers, value = &0) = kCGLNoError | |
16 CGLDescribePixelFormat(pix = 0x17a1a400, pix_num = 0, attrib = kCGLPFAStereo, value = &0) = kCGLNoError | |
17 CGLDescribePixelFormat(pix = 0x17a1a400, pix_num = 0, attrib = kCGLPFASamples, value = &0) = kCGLNoError | |
19 glGetIntegerv(pname = GL_CONTEXT_FLAGS, params = &1) | |
20 glGetIntegerv(pname = GL_CONTEXT_PROFILE_MASK, params = &1) | |
21 glClear(mask = GL_COLOR_BUFFER_BIT) | |
22 CGLFlushDrawable(ctx = 0x1900ec00) = kCGLNoError | |
29 glCreateShader(type = GL_VERTEX_SHADER) = 1 | |
30 glShaderSource(shader = 1, count = 1, string = &"#version 150 | |
in vec3 vert; | |
void main() { | |
// Does not alter vertices at all | |
gl_Position = vec4(vert, 1.0f); | |
}", length = &114) | |
31 glCompileShader(shader = 1) | |
32 glGetShaderiv(shader = 1, pname = GL_COMPILE_STATUS, params = &1) | |
33 glCreateShader(type = GL_FRAGMENT_SHADER) = 2 | |
34 glShaderSource(shader = 2, count = 1, string = &"#version 150 | |
out vec4 finalColor; | |
void main() { | |
//Set every drawn pixel to white | |
finalColor = vec4(1.0f, 1.0f, 1.0f, 1.0f); | |
}", length = &131) | |
35 glCompileShader(shader = 2) | |
36 glGetShaderiv(shader = 2, pname = GL_COMPILE_STATUS, params = &1) | |
37 glCreateProgram() = 3 | |
38 glAttachShader(program = 3, shader = 1) | |
39 glAttachShader(program = 3, shader = 2) | |
40 glBindAttribLocation(program = 3, index = 0, name = "vert") | |
41 glLinkProgram(program = 3) | |
42 glDetachShader(program = 3, shader = 1) | |
43 glDetachShader(program = 3, shader = 2) | |
44 glGetProgramiv(program = 3, pname = GL_LINK_STATUS, params = &1) | |
45 glDeleteShader(shader = 1) | |
46 glDeleteShader(shader = 2) | |
47 glGenVertexArrays(n = 1, arrays = &1) | |
48 glBindVertexArray(array = 1) | |
49 glGenBuffers(n = 1, buffer = &1) | |
50 glBindBuffer(target = GL_ARRAY_BUFFER, buffer = 1) | |
51 glBufferData(target = GL_ARRAY_BUFFER, size = 36, data = blob(36), usage = GL_STATIC_DRAW) | |
52 glGetAttribLocation(program = 3, name = "vert") = 0 | |
53 glEnableVertexAttribArray(index = 0) | |
54 glVertexAttribPointer(index = 0, size = 4, type = GL_FLOAT, normalized = GL_FALSE, stride = 0, pointer = NULL) | |
55 glBindBuffer(target = GL_ARRAY_BUFFER, buffer = 0) | |
56 glBindVertexArray(array = 0) | |
57 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
58 glClear(mask = GL_COLOR_BUFFER_BIT) | |
59 glUseProgram(program = 3) | |
60 glBindVertexArray(array = 1) | |
61 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
62 glBindVertexArray(array = 0) | |
63 glUseProgram(program = 0) | |
64 CGLFlushDrawable(ctx = 0x1900ec00) = kCGLNoError | |
65 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
66 glClear(mask = GL_COLOR_BUFFER_BIT) | |
67 glUseProgram(program = 3) | |
68 glBindVertexArray(array = 1) | |
69 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
70 glBindVertexArray(array = 0) | |
71 glUseProgram(program = 0) | |
72 CGLFlushDrawable(ctx = 0x1900ec00) = kCGLNoError | |
73 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
74 glClear(mask = GL_COLOR_BUFFER_BIT) | |
75 glUseProgram(program = 3) | |
76 glBindVertexArray(array = 1) | |
77 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
78 glBindVertexArray(array = 0) | |
79 glUseProgram(program = 0) | |
80 CGLFlushDrawable(ctx = 0x1900ec00) = kCGLNoError | |
81 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
82 glClear(mask = GL_COLOR_BUFFER_BIT) | |
83 glUseProgram(program = 3) | |
84 glBindVertexArray(array = 1) | |
85 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
86 glBindVertexArray(array = 0) | |
87 glUseProgram(program = 0) | |
88 CGLFlushDrawable(ctx = 0x1900ec00) = kCGLNoError | |
89 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
90 glClear(mask = GL_COLOR_BUFFER_BIT) | |
91 glUseProgram(program = 3) | |
92 glBindVertexArray(array = 1) | |
93 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
94 glBindVertexArray(array = 0) | |
95 glUseProgram(program = 0) | |
96 CGLFlushDrawable(ctx = 0x1900ec00) = kCGLNoError | |
97 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
98 glClear(mask = GL_COLOR_BUFFER_BIT) | |
99 glUseProgram(program = 3) | |
100 glBindVertexArray(array = 1) | |
101 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
102 glBindVertexArray(array = 0) | |
103 glUseProgram(program = 0) | |
104 CGLFlushDrawable(ctx = 0x1900ec00) = kCGLNoError | |
105 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
106 glClear(mask = GL_COLOR_BUFFER_BIT) | |
107 glUseProgram(program = 3) | |
108 glBindVertexArray(array = 1) | |
109 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
110 glBindVertexArray(array = 0) | |
111 glUseProgram(program = 0) | |
112 CGLFlushDrawable(ctx = 0x1900ec00) = kCGLNoError | |
113 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
114 glClear(mask = GL_COLOR_BUFFER_BIT) | |
115 glUseProgram(program = 3) | |
116 glBindVertexArray(array = 1) | |
117 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
118 glBindVertexArray(array = 0) | |
119 glUseProgram(program = 0) | |
120 CGLFlushDrawable(ctx = 0x1900ec00) = kCGLNoError | |
121 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
122 glClear(mask = GL_COLOR_BUFFER_BIT) | |
123 glUseProgram(program = 3) | |
124 glBindVertexArray(array = 1) | |
125 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
126 glBindVertexArray(array = 0) | |
127 glUseProgram(program = 0) | |
128 CGLFlushDrawable(ctx = 0x1900ec00) = kCGLNoError | |
129 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
130 glClear(mask = GL_COLOR_BUFFER_BIT) | |
131 glUseProgram(program = 3) | |
132 glBindVertexArray(array = 1) | |
133 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
134 glBindVertexArray(array = 0) | |
135 glUseProgram(program = 0) | |
136 CGLFlushDrawable(ctx = 0x1900ec00) = kCGLNoError | |
137 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
138 glClear(mask = GL_COLOR_BUFFER_BIT) | |
139 glUseProgram(program = 3) | |
140 glBindVertexArray(array = 1) | |
141 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
142 glBindVertexArray(array = 0) | |
143 glUseProgram(program = 0) | |
144 CGLFlushDrawable(ctx = 0x1900ec00) = kCGLNoError | |
145 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
146 glClear(mask = GL_COLOR_BUFFER_BIT) | |
147 glUseProgram(program = 3) | |
148 glBindVertexArray(array = 1) | |
149 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
150 glBindVertexArray(array = 0) | |
151 glUseProgram(program = 0) | |
152 CGLFlushDrawable(ctx = 0x1900ec00) = kCGLNoError |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
0 CGLSetOption(pname = kCGLGOUseErrorHandler, param = 0) = kCGLNoError | |
1 CGLChoosePixelFormat(attribs = {kCGLPFADoubleBuffer, kCGLPFAOpenGLProfile, 12800, kCGLPFAColorSize, 24, kCGLPFAAlphaSize, 8, 0}, pix = &0x7fa42b40eb90, npix = &2) = kCGLNoError | |
2 CGLSetOption(pname = kCGLGOUseErrorHandler, param = 0) = kCGLNoError | |
3 CGLCreateContext(pix = 0x7fa42b40eb90, share = NULL, ctx = &0x7fa42c80f400) = kCGLNoError | |
4 CGLSetParameter(ctx = 0x7fa42c80f400, pname = 1236, params = &725674064) = kCGLNoError | |
5 CGLSetSurface(ctx = 0x7fa42c80f400, cid = 0x211db, wid = 10453, sid = 1220653509) = kCGLNoError | |
6 CGLSetCurrentContext(ctx = 0x7fa42c80f400) = kCGLNoError | |
7 glViewport(x = 0, y = 0, width = 800, height = 600) | |
8 glScissor(x = 0, y = 0, width = 800, height = 600) | |
9 CGLDescribePixelFormat(pix = 0x7fa42b40eb90, pix_num = 0, attrib = kCGLPFAAccelerated, value = &1) = kCGLNoError | |
10 CGLDescribePixelFormat(pix = 0x7fa42b40eb90, pix_num = 0, attrib = kCGLPFAAlphaSize, value = &8) = kCGLNoError | |
11 CGLDescribePixelFormat(pix = 0x7fa42b40eb90, pix_num = 0, attrib = kCGLPFAColorSize, value = &32) = kCGLNoError | |
12 CGLDescribePixelFormat(pix = 0x7fa42b40eb90, pix_num = 0, attrib = kCGLPFADepthSize, value = &0) = kCGLNoError | |
13 CGLDescribePixelFormat(pix = 0x7fa42b40eb90, pix_num = 0, attrib = kCGLPFAStencilSize, value = &0) = kCGLNoError | |
14 CGLDescribePixelFormat(pix = 0x7fa42b40eb90, pix_num = 0, attrib = kCGLPFAAccumSize, value = &0) = kCGLNoError | |
15 CGLDescribePixelFormat(pix = 0x7fa42b40eb90, pix_num = 0, attrib = kCGLPFAAuxBuffers, value = &0) = kCGLNoError | |
16 CGLDescribePixelFormat(pix = 0x7fa42b40eb90, pix_num = 0, attrib = kCGLPFAStereo, value = &0) = kCGLNoError | |
17 CGLDescribePixelFormat(pix = 0x7fa42b40eb90, pix_num = 0, attrib = kCGLPFASamples, value = &0) = kCGLNoError | |
19 glGetIntegerv(pname = GL_CONTEXT_FLAGS, params = &1) | |
20 glGetIntegerv(pname = GL_CONTEXT_PROFILE_MASK, params = &1) | |
21 glClear(mask = GL_COLOR_BUFFER_BIT) | |
22 CGLFlushDrawable(ctx = 0x7fa42c80f400) = kCGLNoError | |
29 glCreateShader(type = GL_VERTEX_SHADER) = 1 | |
30 glShaderSource(shader = 1, count = 1, string = &"#version 150 | |
in vec3 vert; | |
void main() { | |
// does not alter the verticies at all | |
gl_Position = vec4(vert, 1); | |
}", length = NULL) | |
31 glCompileShader(shader = 1) | |
32 glGetShaderiv(shader = 1, pname = GL_COMPILE_STATUS, params = &1) | |
33 glCreateShader(type = GL_FRAGMENT_SHADER) = 2 | |
34 glShaderSource(shader = 2, count = 1, string = &"#version 150 | |
out vec4 finalColor; | |
void main() { | |
//set every drawn pixel to white | |
finalColor = vec4(1.0, 1.0, 1.0, 1.0); | |
}", length = NULL) | |
35 glCompileShader(shader = 2) | |
36 glGetShaderiv(shader = 2, pname = GL_COMPILE_STATUS, params = &1) | |
37 glCreateProgram() = 3 | |
38 glAttachShader(program = 3, shader = 1) | |
39 glAttachShader(program = 3, shader = 2) | |
40 glBindAttribLocation(program = 3, index = 0, name = "vert") | |
41 glLinkProgram(program = 3) | |
42 glDetachShader(program = 3, shader = 1) | |
43 glDetachShader(program = 3, shader = 2) | |
44 glGetProgramiv(program = 3, pname = GL_LINK_STATUS, params = &1) | |
45 glDeleteShader(shader = 1) | |
46 glDeleteShader(shader = 2) | |
47 glGenVertexArrays(n = 1, arrays = &1) | |
48 glBindVertexArray(array = 1) | |
49 glGenBuffers(n = 1, buffer = &1) | |
50 glBindBuffer(target = GL_ARRAY_BUFFER, buffer = 1) | |
51 glBufferData(target = GL_ARRAY_BUFFER, size = 36, data = blob(36), usage = GL_STATIC_DRAW) | |
52 glGetAttribLocation(program = 3, name = "vert") = 0 | |
53 glEnableVertexAttribArray(index = 0) | |
54 glGetAttribLocation(program = 3, name = "vert") = 0 | |
55 glVertexAttribPointer(index = 0, size = 3, type = GL_FLOAT, normalized = GL_FALSE, stride = 0, pointer = NULL) | |
56 glBindBuffer(target = GL_ARRAY_BUFFER, buffer = 0) | |
57 glBindVertexArray(array = 0) | |
58 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
59 glClear(mask = GL_COLOR_BUFFER_BIT) | |
60 glUseProgram(program = 3) | |
61 glBindVertexArray(array = 1) | |
62 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
63 glBindVertexArray(array = 0) | |
64 glUseProgram(program = 0) | |
65 CGLFlushDrawable(ctx = 0x7fa42c80f400) = kCGLNoError | |
66 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
67 glClear(mask = GL_COLOR_BUFFER_BIT) | |
68 glUseProgram(program = 3) | |
69 glBindVertexArray(array = 1) | |
70 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
71 glBindVertexArray(array = 0) | |
72 glUseProgram(program = 0) | |
73 CGLFlushDrawable(ctx = 0x7fa42c80f400) = kCGLNoError | |
74 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
75 glClear(mask = GL_COLOR_BUFFER_BIT) | |
76 glUseProgram(program = 3) | |
77 glBindVertexArray(array = 1) | |
78 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
79 glBindVertexArray(array = 0) | |
80 glUseProgram(program = 0) | |
81 CGLFlushDrawable(ctx = 0x7fa42c80f400) = kCGLNoError | |
82 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
83 glClear(mask = GL_COLOR_BUFFER_BIT) | |
84 glUseProgram(program = 3) | |
85 glBindVertexArray(array = 1) | |
86 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
87 glBindVertexArray(array = 0) | |
88 glUseProgram(program = 0) | |
89 CGLFlushDrawable(ctx = 0x7fa42c80f400) = kCGLNoError | |
90 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
91 glClear(mask = GL_COLOR_BUFFER_BIT) | |
92 glUseProgram(program = 3) | |
93 glBindVertexArray(array = 1) | |
94 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
95 glBindVertexArray(array = 0) | |
96 glUseProgram(program = 0) | |
97 CGLFlushDrawable(ctx = 0x7fa42c80f400) = kCGLNoError | |
98 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
99 glClear(mask = GL_COLOR_BUFFER_BIT) | |
100 glUseProgram(program = 3) | |
101 glBindVertexArray(array = 1) | |
102 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
103 glBindVertexArray(array = 0) | |
104 glUseProgram(program = 0) | |
105 CGLFlushDrawable(ctx = 0x7fa42c80f400) = kCGLNoError | |
106 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
107 glClear(mask = GL_COLOR_BUFFER_BIT) | |
108 glUseProgram(program = 3) | |
109 glBindVertexArray(array = 1) | |
110 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
111 glBindVertexArray(array = 0) | |
112 glUseProgram(program = 0) | |
113 CGLFlushDrawable(ctx = 0x7fa42c80f400) = kCGLNoError | |
114 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
115 glClear(mask = GL_COLOR_BUFFER_BIT) | |
116 glUseProgram(program = 3) | |
117 glBindVertexArray(array = 1) | |
118 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
119 glBindVertexArray(array = 0) | |
120 glUseProgram(program = 0) | |
121 CGLFlushDrawable(ctx = 0x7fa42c80f400) = kCGLNoError | |
122 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
123 glClear(mask = GL_COLOR_BUFFER_BIT) | |
124 glUseProgram(program = 3) | |
125 glBindVertexArray(array = 1) | |
126 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
127 glBindVertexArray(array = 0) | |
128 glUseProgram(program = 0) | |
129 CGLFlushDrawable(ctx = 0x7fa42c80f400) = kCGLNoError | |
130 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
131 glClear(mask = GL_COLOR_BUFFER_BIT) | |
132 glUseProgram(program = 3) | |
133 glBindVertexArray(array = 1) | |
134 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
135 glBindVertexArray(array = 0) | |
136 glUseProgram(program = 0) | |
137 CGLFlushDrawable(ctx = 0x7fa42c80f400) = kCGLNoError | |
138 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
139 glClear(mask = GL_COLOR_BUFFER_BIT) | |
140 glUseProgram(program = 3) | |
141 glBindVertexArray(array = 1) | |
142 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
143 glBindVertexArray(array = 0) | |
144 glUseProgram(program = 0) | |
145 CGLFlushDrawable(ctx = 0x7fa42c80f400) = kCGLNoError | |
146 glClearColor(red = 0, green = 0, blue = 0, alpha = 1) | |
147 glClear(mask = GL_COLOR_BUFFER_BIT) | |
148 glUseProgram(program = 3) | |
149 glBindVertexArray(array = 1) | |
150 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3) | |
151 glBindVertexArray(array = 0) | |
152 glUseProgram(program = 0) | |
153 CGLFlushDrawable(ctx = 0x7fa42c80f400) = kCGLNoError |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment