Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2022-04-20 10:11:47 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-04-21 12:09:06 +0300
commitbff100b5a07e5c51bbc4660eac28c86b9d0a4ff2 (patch)
tree7171b3e3fc5e61bc2690a249837c90368eea4a74
parentd95495a9cc3f31b3de0a2b2c7ebdf3e758e52327 (diff)
Fix GPU subdivision: Crash on adding subdivision surface modifier
This was caused by the use of a reserved keyword macro that is not directly used but causes an error on some compiler. Change the occurences to not match the macros.
-rw-r--r--intern/opensubdiv/internal/evaluator/shaders/glsl_compute_kernel.glsl6
-rw-r--r--source/blender/draw/intern/shaders/common_subdiv_patch_evaluation_comp.glsl12
2 files changed, 9 insertions, 9 deletions
diff --git a/intern/opensubdiv/internal/evaluator/shaders/glsl_compute_kernel.glsl b/intern/opensubdiv/internal/evaluator/shaders/glsl_compute_kernel.glsl
index 2f60aee0999..08ba1239cb9 100644
--- a/intern/opensubdiv/internal/evaluator/shaders/glsl_compute_kernel.glsl
+++ b/intern/opensubdiv/internal/evaluator/shaders/glsl_compute_kernel.glsl
@@ -329,10 +329,10 @@ void main()
int current = int(gl_GlobalInvocationID.x);
OsdPatchCoord coord = GetPatchCoord(current);
- OsdPatchArray array = GetPatchArray(coord.arrayIndex);
+ OsdPatchArray arr = GetPatchArray(coord.arrayIndex);
OsdPatchParam param = GetPatchParam(coord.patchIndex);
- int patchType = OsdPatchParamIsRegular(param) ? array.regDesc : array.desc;
+ int patchType = OsdPatchParamIsRegular(param) ? arr.regDesc : arr.desc;
float wP[20], wDu[20], wDv[20], wDuu[20], wDuv[20], wDvv[20];
int nPoints = OsdEvaluatePatchBasis(
@@ -346,7 +346,7 @@ void main()
clear(duv);
clear(dvv);
- int indexBase = array.indexBase + array.stride * (coord.patchIndex - array.primitiveIdBase);
+ int indexBase = arr.indexBase + arr.stride * (coord.patchIndex - arr.primitiveIdBase);
for (int cv = 0; cv < nPoints; ++cv) {
int index = patchIndexBuffer[indexBase + cv];
diff --git a/source/blender/draw/intern/shaders/common_subdiv_patch_evaluation_comp.glsl b/source/blender/draw/intern/shaders/common_subdiv_patch_evaluation_comp.glsl
index 65cf4ebb90f..c48735a55f9 100644
--- a/source/blender/draw/intern/shaders/common_subdiv_patch_evaluation_comp.glsl
+++ b/source/blender/draw/intern/shaders/common_subdiv_patch_evaluation_comp.glsl
@@ -248,16 +248,16 @@ OsdPatchCoord GetPatchCoord(int face_index, float u, float v)
void evaluate_patches_limits(int patch_index, float u, float v, inout vec2 dst)
{
OsdPatchCoord coord = GetPatchCoord(patch_index, u, v);
- OsdPatchArray array = GetPatchArray(coord.arrayIndex);
+ OsdPatchArray arr = GetPatchArray(coord.arrayIndex);
OsdPatchParam param = GetPatchParam(coord.patchIndex);
- int patchType = OsdPatchParamIsRegular(param) ? array.regDesc : array.desc;
+ int patchType = OsdPatchParamIsRegular(param) ? arr.regDesc : arr.desc;
float wP[20], wDu[20], wDv[20], wDuu[20], wDuv[20], wDvv[20];
int nPoints = OsdEvaluatePatchBasis(
patchType, param, coord.s, coord.t, wP, wDu, wDv, wDuu, wDuv, wDvv);
- int indexBase = array.indexBase + array.stride * (coord.patchIndex - array.primitiveIdBase);
+ int indexBase = arr.indexBase + arr.stride * (coord.patchIndex - arr.primitiveIdBase);
for (int cv = 0; cv < nPoints; ++cv) {
int index = patchIndexBuffer[indexBase + cv];
@@ -270,16 +270,16 @@ void evaluate_patches_limits(
int patch_index, float u, float v, inout vec3 dst, inout vec3 du, inout vec3 dv)
{
OsdPatchCoord coord = GetPatchCoord(patch_index, u, v);
- OsdPatchArray array = GetPatchArray(coord.arrayIndex);
+ OsdPatchArray arr = GetPatchArray(coord.arrayIndex);
OsdPatchParam param = GetPatchParam(coord.patchIndex);
- int patchType = OsdPatchParamIsRegular(param) ? array.regDesc : array.desc;
+ int patchType = OsdPatchParamIsRegular(param) ? arr.regDesc : arr.desc;
float wP[20], wDu[20], wDv[20], wDuu[20], wDuv[20], wDvv[20];
int nPoints = OsdEvaluatePatchBasis(
patchType, param, coord.s, coord.t, wP, wDu, wDv, wDuu, wDuv, wDvv);
- int indexBase = array.indexBase + array.stride * (coord.patchIndex - array.primitiveIdBase);
+ int indexBase = arr.indexBase + arr.stride * (coord.patchIndex - arr.primitiveIdBase);
for (int cv = 0; cv < nPoints; ++cv) {
int index = patchIndexBuffer[indexBase + cv];