Implement GL_OES_shader_image_atomic.

This commit is contained in:
John Kessenich
2015-08-16 23:40:15 -06:00
parent 556ab3ac96
commit fb5ba510ca
9 changed files with 705 additions and 23 deletions

View File

@@ -96,6 +96,7 @@ ERROR: 86 compilation errors. No code generated.
Shader version: 310
Requested GL_EXT_texture_buffer
Requested GL_OES_gpu_shader5
Requested GL_OES_shader_image_atomic
Requested GL_OES_shader_io_blocks
Requested GL_OES_texture_buffer
Requested GL_OES_texture_cube_map_array
@@ -776,6 +777,81 @@ ERROR: node is still EOpNull!
0:340 'tfsu' (temp highp 3-component vector of int)
0:340 Function Call: textureSize(usA2M1; (global highp 3-component vector of int)
0:340 'samp2DMSAu' (uniform highp usampler2DMSArray)
0:352 Function Definition: goodImageAtom( (global void)
0:352 Function Parameters:
0:? Sequence
0:358 Function Call: imageAtomicAdd(iI21;vi2;i1; (global highp int)
0:358 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:358 'P' (uniform highp 2-component vector of int)
0:358 'dati' (temp highp int)
0:359 Function Call: imageAtomicAdd(uI21;vi2;u1; (global highp uint)
0:359 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:359 'P' (uniform highp 2-component vector of int)
0:359 'datu' (temp highp uint)
0:360 Function Call: imageAtomicMin(iI21;vi2;i1; (global highp int)
0:360 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:360 'P' (uniform highp 2-component vector of int)
0:360 'dati' (temp highp int)
0:361 Function Call: imageAtomicMin(uI21;vi2;u1; (global highp uint)
0:361 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:361 'P' (uniform highp 2-component vector of int)
0:361 'datu' (temp highp uint)
0:362 Function Call: imageAtomicMax(iI21;vi2;i1; (global highp int)
0:362 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:362 'P' (uniform highp 2-component vector of int)
0:362 'dati' (temp highp int)
0:363 Function Call: imageAtomicMax(uI21;vi2;u1; (global highp uint)
0:363 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:363 'P' (uniform highp 2-component vector of int)
0:363 'datu' (temp highp uint)
0:364 Function Call: imageAtomicAnd(iI21;vi2;i1; (global highp int)
0:364 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:364 'P' (uniform highp 2-component vector of int)
0:364 'dati' (temp highp int)
0:365 Function Call: imageAtomicAnd(uI21;vi2;u1; (global highp uint)
0:365 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:365 'P' (uniform highp 2-component vector of int)
0:365 'datu' (temp highp uint)
0:366 Function Call: imageAtomicOr(iI21;vi2;i1; (global highp int)
0:366 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:366 'P' (uniform highp 2-component vector of int)
0:366 'dati' (temp highp int)
0:367 Function Call: imageAtomicOr(uI21;vi2;u1; (global highp uint)
0:367 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:367 'P' (uniform highp 2-component vector of int)
0:367 'datu' (temp highp uint)
0:368 Function Call: imageAtomicXor(iI21;vi2;i1; (global highp int)
0:368 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:368 'P' (uniform highp 2-component vector of int)
0:368 'dati' (temp highp int)
0:369 Function Call: imageAtomicXor(uI21;vi2;u1; (global highp uint)
0:369 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:369 'P' (uniform highp 2-component vector of int)
0:369 'datu' (temp highp uint)
0:370 Function Call: imageAtomicExchange(iI21;vi2;i1; (global highp int)
0:370 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:370 'P' (uniform highp 2-component vector of int)
0:370 'dati' (temp highp int)
0:371 Function Call: imageAtomicExchange(uI21;vi2;u1; (global highp uint)
0:371 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:371 'P' (uniform highp 2-component vector of int)
0:371 'datu' (temp highp uint)
0:372 Function Call: imageAtomicExchange(I21;vi2;f1; (global highp float)
0:372 'im2Df' (layout(r32f ) uniform highp image2D)
0:372 'P' (uniform highp 2-component vector of int)
0:372 'datf' (temp highp float)
0:373 Function Call: imageAtomicCompSwap(iI21;vi2;i1;i1; (global highp int)
0:373 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:373 'P' (uniform highp 2-component vector of int)
0:373 Constant:
0:373 3 (const int)
0:373 'dati' (temp highp int)
0:374 Function Call: imageAtomicCompSwap(uI21;vi2;u1;u1; (global highp uint)
0:374 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:374 'P' (uniform highp 2-component vector of int)
0:374 Constant:
0:374 5 (const uint)
0:374 'datu' (temp highp uint)
0:? Linker Objects
0:? 's' (shared highp 4-component vector of float)
0:? 'v' (buffer highp 4-component vector of float)
@@ -873,6 +949,10 @@ ERROR: node is still EOpNull!
0:? 'samp2DMSA' (uniform highp sampler2DMSArray)
0:? 'samp2DMSAi' (uniform highp isampler2DMSArray)
0:? 'samp2DMSAu' (uniform highp usampler2DMSArray)
0:? 'im2Df' (layout(r32f ) uniform highp image2D)
0:? 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:? 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:? 'P' (uniform highp 2-component vector of int)
0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
@@ -883,6 +963,7 @@ Linked vertex stage:
Shader version: 310
Requested GL_EXT_texture_buffer
Requested GL_OES_gpu_shader5
Requested GL_OES_shader_image_atomic
Requested GL_OES_shader_io_blocks
Requested GL_OES_texture_buffer
Requested GL_OES_texture_cube_map_array
@@ -1563,6 +1644,81 @@ ERROR: node is still EOpNull!
0:340 'tfsu' (temp highp 3-component vector of int)
0:340 Function Call: textureSize(usA2M1; (global highp 3-component vector of int)
0:340 'samp2DMSAu' (uniform highp usampler2DMSArray)
0:352 Function Definition: goodImageAtom( (global void)
0:352 Function Parameters:
0:? Sequence
0:358 Function Call: imageAtomicAdd(iI21;vi2;i1; (global highp int)
0:358 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:358 'P' (uniform highp 2-component vector of int)
0:358 'dati' (temp highp int)
0:359 Function Call: imageAtomicAdd(uI21;vi2;u1; (global highp uint)
0:359 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:359 'P' (uniform highp 2-component vector of int)
0:359 'datu' (temp highp uint)
0:360 Function Call: imageAtomicMin(iI21;vi2;i1; (global highp int)
0:360 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:360 'P' (uniform highp 2-component vector of int)
0:360 'dati' (temp highp int)
0:361 Function Call: imageAtomicMin(uI21;vi2;u1; (global highp uint)
0:361 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:361 'P' (uniform highp 2-component vector of int)
0:361 'datu' (temp highp uint)
0:362 Function Call: imageAtomicMax(iI21;vi2;i1; (global highp int)
0:362 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:362 'P' (uniform highp 2-component vector of int)
0:362 'dati' (temp highp int)
0:363 Function Call: imageAtomicMax(uI21;vi2;u1; (global highp uint)
0:363 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:363 'P' (uniform highp 2-component vector of int)
0:363 'datu' (temp highp uint)
0:364 Function Call: imageAtomicAnd(iI21;vi2;i1; (global highp int)
0:364 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:364 'P' (uniform highp 2-component vector of int)
0:364 'dati' (temp highp int)
0:365 Function Call: imageAtomicAnd(uI21;vi2;u1; (global highp uint)
0:365 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:365 'P' (uniform highp 2-component vector of int)
0:365 'datu' (temp highp uint)
0:366 Function Call: imageAtomicOr(iI21;vi2;i1; (global highp int)
0:366 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:366 'P' (uniform highp 2-component vector of int)
0:366 'dati' (temp highp int)
0:367 Function Call: imageAtomicOr(uI21;vi2;u1; (global highp uint)
0:367 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:367 'P' (uniform highp 2-component vector of int)
0:367 'datu' (temp highp uint)
0:368 Function Call: imageAtomicXor(iI21;vi2;i1; (global highp int)
0:368 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:368 'P' (uniform highp 2-component vector of int)
0:368 'dati' (temp highp int)
0:369 Function Call: imageAtomicXor(uI21;vi2;u1; (global highp uint)
0:369 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:369 'P' (uniform highp 2-component vector of int)
0:369 'datu' (temp highp uint)
0:370 Function Call: imageAtomicExchange(iI21;vi2;i1; (global highp int)
0:370 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:370 'P' (uniform highp 2-component vector of int)
0:370 'dati' (temp highp int)
0:371 Function Call: imageAtomicExchange(uI21;vi2;u1; (global highp uint)
0:371 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:371 'P' (uniform highp 2-component vector of int)
0:371 'datu' (temp highp uint)
0:372 Function Call: imageAtomicExchange(I21;vi2;f1; (global highp float)
0:372 'im2Df' (layout(r32f ) uniform highp image2D)
0:372 'P' (uniform highp 2-component vector of int)
0:372 'datf' (temp highp float)
0:373 Function Call: imageAtomicCompSwap(iI21;vi2;i1;i1; (global highp int)
0:373 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:373 'P' (uniform highp 2-component vector of int)
0:373 Constant:
0:373 3 (const int)
0:373 'dati' (temp highp int)
0:374 Function Call: imageAtomicCompSwap(uI21;vi2;u1;u1; (global highp uint)
0:374 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:374 'P' (uniform highp 2-component vector of int)
0:374 Constant:
0:374 5 (const uint)
0:374 'datu' (temp highp uint)
0:? Linker Objects
0:? 's' (shared highp 4-component vector of float)
0:? 'v' (buffer highp 4-component vector of float)
@@ -1660,6 +1816,10 @@ ERROR: node is still EOpNull!
0:? 'samp2DMSA' (uniform highp sampler2DMSArray)
0:? 'samp2DMSAi' (uniform highp isampler2DMSArray)
0:? 'samp2DMSAu' (uniform highp usampler2DMSArray)
0:? 'im2Df' (layout(r32f ) uniform highp image2D)
0:? 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:? 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:? 'P' (uniform highp 2-component vector of int)
0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)