diff --git a/src/gl_canvas.c b/src/gl_canvas.c index 8711147..17f42d3 100644 --- a/src/gl_canvas.c +++ b/src/gl_canvas.c @@ -269,11 +269,10 @@ void mg_gl_render_batch(mg_gl_canvas_backend* backend, glUniform2i(2, nTilesX, nTilesY); glDispatchCompute(eltCount, 1, 1); - glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT); //NOTE: backprop pass - /* + glUseProgram(backend->backprop); glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 0, backend->tileQueueBuffer); @@ -281,7 +280,8 @@ void mg_gl_render_batch(mg_gl_canvas_backend* backend, glUniform2i(0, nTilesX, nTilesY); glDispatchCompute(nTilesY, 1, 1); - */ + glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT); + /* //NOTE: merge pass glUseProgram(backend->merge); diff --git a/src/glsl_shaders/raster.glsl b/src/glsl_shaders/raster.glsl index 3059813..ac74de7 100644 --- a/src/glsl_shaders/raster.glsl +++ b/src/glsl_shaders/raster.glsl @@ -144,8 +144,7 @@ void main() mg_gl_tile_queue tileQueue = tileQueuesBuffer.elements[tileIndex]; int opIndex = tileQueue.first; -// int winding = tileQueue.windingOffset; - int winding = 0; + int winding = tileQueue.windingOffset; if((pixelCoord.x % 16) == 0 || (pixelCoord.y % 16) == 0) { @@ -174,7 +173,7 @@ void main() winding += seg.windingIncrement; } -/* if(op.crossRight) + if(op.crossRight) { if( (seg.config == MG_GL_BR || seg.config == MG_GL_TL) &&(sampleCoord.y > seg.box.w)) @@ -187,7 +186,6 @@ void main() winding -= seg.windingIncrement; } } -*/ } } int pathIndex = 0;