diff options
author | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2022-05-31 13:15:37 +0300 |
---|---|---|
committer | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2022-05-31 13:15:37 +0300 |
commit | 9301cc74eeb8979db8778d7208e30e019adf57fb (patch) | |
tree | 3d856bd7ba9e98ebd6ea1810c68e9d998c4987f4 /intern/opensubdiv | |
parent | 0d7e0ffdb56c28fa78a17f517f2d006bbd1f42bf (diff) | |
parent | 344a8fb3d4ec4a7cf04aad328e08cc7f490c99d9 (diff) |
Merge remote-tracking branch 'origin/blender-v3.2-release'
Diffstat (limited to 'intern/opensubdiv')
-rw-r--r-- | intern/opensubdiv/internal/evaluator/gl_compute_evaluator.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/intern/opensubdiv/internal/evaluator/gl_compute_evaluator.cc b/intern/opensubdiv/internal/evaluator/gl_compute_evaluator.cc index acf628c7035..c2ab2a522d2 100644 --- a/intern/opensubdiv/internal/evaluator/gl_compute_evaluator.cc +++ b/intern/opensubdiv/internal/evaluator/gl_compute_evaluator.cc @@ -396,6 +396,8 @@ bool GLComputeEvaluator::EvalStencils(GLuint srcBuffer, if (dvvWeightsBuffer) glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 15, dvvWeightsBuffer); + GLint activeProgram; + glGetIntegerv(GL_CURRENT_PROGRAM, &activeProgram); glUseProgram(_stencilKernel.program); glUniform1i(_stencilKernel.uniformStart, start); @@ -420,7 +422,7 @@ bool GLComputeEvaluator::EvalStencils(GLuint srcBuffer, DispatchCompute(count); - glUseProgram(0); + glUseProgram(activeProgram); glMemoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT); for (int i = 0; i < 16; ++i) { @@ -501,6 +503,8 @@ bool GLComputeEvaluator::EvalPatches(GLuint srcBuffer, glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 6, patchIndexBuffer); glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 7, patchParamsBuffer); + GLint activeProgram; + glGetIntegerv(GL_CURRENT_PROGRAM, &activeProgram); glUseProgram(_patchKernel.program); glUniform1i(_patchKernel.uniformSrcOffset, srcDesc.offset); @@ -534,7 +538,7 @@ bool GLComputeEvaluator::EvalPatches(GLuint srcBuffer, DispatchCompute(numPatchCoords); - glUseProgram(0); + glUseProgram(activeProgram); glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 0, 0); glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 1, 0); |