2
0
Эх сурвалжийг харах

Fixed texture mip mismatch.

Бранимир Караџић 7 жил өмнө
parent
commit
9054588331

+ 1 - 0
src/renderer_d3d11.cpp

@@ -4109,6 +4109,7 @@ namespace bgfx { namespace d3d11
 				, imageContainer.m_numLayers
 				, imageContainer.m_numLayers
 				, imageContainer.m_format
 				, imageContainer.m_format
 				);
 				);
+			ti.numMips = bx::min<uint8_t>(imageContainer.m_numMips-startLod, ti.numMips);
 
 
 			m_flags  = _flags;
 			m_flags  = _flags;
 			m_width  = ti.width;
 			m_width  = ti.width;

+ 1 - 0
src/renderer_d3d12.cpp

@@ -4592,6 +4592,7 @@ namespace bgfx { namespace d3d12
 				, imageContainer.m_numLayers
 				, imageContainer.m_numLayers
 				, imageContainer.m_format
 				, imageContainer.m_format
 				);
 				);
+			ti.numMips = bx::min<uint8_t>(imageContainer.m_numMips-startLod, ti.numMips);
 
 
 			m_flags  = _flags;
 			m_flags  = _flags;
 			m_width  = ti.width;
 			m_width  = ti.width;

+ 1 - 0
src/renderer_d3d9.cpp

@@ -2920,6 +2920,7 @@ namespace bgfx { namespace d3d9
 				, imageContainer.m_numLayers
 				, imageContainer.m_numLayers
 				, imageContainer.m_format
 				, imageContainer.m_format
 				);
 				);
+			ti.numMips = bx::min<uint8_t>(imageContainer.m_numMips-startLod, ti.numMips);
 
 
 			m_flags   = _flags;
 			m_flags   = _flags;
 			m_width   = ti.width;
 			m_width   = ti.width;

+ 1 - 0
src/renderer_gl.cpp

@@ -4734,6 +4734,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) );
 				, imageContainer.m_numLayers
 				, imageContainer.m_numLayers
 				, imageContainer.m_format
 				, imageContainer.m_format
 				);
 				);
+			ti.numMips = bx::min<uint8_t>(imageContainer.m_numMips-startLod, ti.numMips);
 
 
 			m_requestedFormat  = uint8_t(imageContainer.m_format);
 			m_requestedFormat  = uint8_t(imageContainer.m_format);
 			m_textureFormat    = uint8_t(getViableTextureFormat(imageContainer) );
 			m_textureFormat    = uint8_t(getViableTextureFormat(imageContainer) );

+ 1 - 0
src/renderer_mtl.mm

@@ -2591,6 +2591,7 @@ namespace bgfx { namespace mtl
 				, imageContainer.m_numLayers
 				, imageContainer.m_numLayers
 				, imageContainer.m_format
 				, imageContainer.m_format
 				);
 				);
+			ti.numMips = bx::min<uint8_t>(imageContainer.m_numMips-startLod, ti.numMips);
 
 
 			m_flags  = _flags;
 			m_flags  = _flags;
 			m_width  = ti.width;
 			m_width  = ti.width;