static const char Shaders_RaytraceBase_fs[] =
"#ifdef ADAPTIVE_SAMPLING\n"
" #extension GL_ARB_shader_image_load_store : require\n"
+ "#endif\n"
+ "#ifdef ADAPTIVE_SAMPLING_ATOMIC\n"
" #extension GL_NV_shader_atomic_float : require\n"
"#endif\n"
"\n"
"\n"
"#ifdef ADAPTIVE_SAMPLING\n"
" //! OpenGL image used for accumulating rendering result.\n"
- " volatile restrict layout(size1x32) uniform image2D uRenderImage;\n"
+ " volatile restrict layout(r32f) uniform image2D uRenderImage;\n"
"\n"
+ "#ifdef ADAPTIVE_SAMPLING_ATOMIC\n"
" //! OpenGL image storing offsets of sampled pixels blocks.\n"
- " coherent restrict layout(size2x32) uniform iimage2D uOffsetImage;\n"
+ " coherent restrict layout(rg32i) uniform iimage2D uOffsetImage;\n"
+ "#else\n"
+ " //! OpenGL image defining per-tile amount of samples.\n"
+ " volatile restrict layout(r32i) uniform iimage2D uTilesImage;\n"
+ "#endif\n"
"\n"
" //! Screen space tile size.\n"
" uniform ivec2 uTileSize;\n"
"//=======================================================================\n"
"vec4 BackgroundColor()\n"
"{\n"
- "#ifdef ADAPTIVE_SAMPLING\n"
+ "#ifdef ADAPTIVE_SAMPLING_ATOMIC\n"
"\n"
" ivec2 aFragCoord = ivec2 (gl_FragCoord.xy);\n"
"\n"