Skip to content

Commit 7d37e20

Browse files
VT simplification 3
1 parent abc313a commit 7d37e20

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

include/nbl/builtin/glsl/virtual_texturing/impl_functions.glsl

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ vec4 nbl_glsl_vTextureGrad_impl(in uint formatID, in vec3 virtualUV, in mat2 dOr
112112
#else
113113
LoD *= 0.5;
114114
#endif
115-
LoD += 5.f;
116115
// WARNING: LoD_high will round up when LoD negative, its not a floor
117116
int LoD_high = int(LoD);
118117

@@ -126,6 +125,7 @@ vec4 nbl_glsl_vTextureGrad_impl(in uint formatID, in vec3 virtualUV, in mat2 dOr
126125
const int actualMaxFullMip = int(originalMaxFullMip)-1;
127126
clippedLoD = inMipTail ? max(actualMaxFullMip,0):LoD_high;
128127

128+
// TODO: investigate the next 3 lines some more
129129
haveToDoTrilinear = LoD_high<originalMaxFullMip+_NBL_VT_IMPL_PAGE_SZ_LOG2;
130130
if (inMipTail)
131131
levelInTail = min(LoD_high-actualMaxFullMip,int(_NBL_VT_IMPL_PAGE_SZ_LOG2));
@@ -137,11 +137,10 @@ vec4 nbl_glsl_vTextureGrad_impl(in uint formatID, in vec3 virtualUV, in mat2 dOr
137137
vec3 loPhysCoord;
138138
// speculative if (haveToDoTrilinear)
139139
{
140-
// now we have absolute guarantees that both LoD_high and LoD_low are in the valid original mip range
141-
bool highNotInLastFull = originalMaxFullMip>=1u && LoD_high<(int(originalMaxFullMip)-1);
142-
clippedLoD = highNotInLastFull ? (clippedLoD+1):clippedLoD;
143-
levelInTail = highNotInLastFull ? levelInTail:(levelInTail+1);
144-
levelInTail = min(levelInTail, int(_NBL_VT_IMPL_PAGE_SZ_LOG2));
140+
if (LoD_high<int(originalMaxFullMip)-1)
141+
clippedLoD++;
142+
else if (levelInTail<int(_NBL_VT_IMPL_PAGE_SZ_LOG2))
143+
levelInTail++;
145144
loPhysCoord = nbl_glsl_vTexture_helper(formatID,virtualUV,clippedLoD,levelInTail);
146145
}
147146

0 commit comments

Comments
 (0)