diff --git a/src/renderer_d3d11.cpp b/src/renderer_d3d11.cpp index d6d08cc7f..bcde00c09 100644 --- a/src/renderer_d3d11.cpp +++ b/src/renderer_d3d11.cpp @@ -4109,6 +4109,7 @@ namespace bgfx { namespace d3d11 , imageContainer.m_numLayers , imageContainer.m_format ); + ti.numMips = bx::min(imageContainer.m_numMips-startLod, ti.numMips); m_flags = _flags; m_width = ti.width; diff --git a/src/renderer_d3d12.cpp b/src/renderer_d3d12.cpp index c7c751432..863b8025e 100644 --- a/src/renderer_d3d12.cpp +++ b/src/renderer_d3d12.cpp @@ -4592,6 +4592,7 @@ namespace bgfx { namespace d3d12 , imageContainer.m_numLayers , imageContainer.m_format ); + ti.numMips = bx::min(imageContainer.m_numMips-startLod, ti.numMips); m_flags = _flags; m_width = ti.width; diff --git a/src/renderer_d3d9.cpp b/src/renderer_d3d9.cpp index 3931112f2..8a0ac9ead 100644 --- a/src/renderer_d3d9.cpp +++ b/src/renderer_d3d9.cpp @@ -2920,6 +2920,7 @@ namespace bgfx { namespace d3d9 , imageContainer.m_numLayers , imageContainer.m_format ); + ti.numMips = bx::min(imageContainer.m_numMips-startLod, ti.numMips); m_flags = _flags; m_width = ti.width; diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index c5e542db7..38513a54c 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -4734,6 +4734,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); , imageContainer.m_numLayers , imageContainer.m_format ); + ti.numMips = bx::min(imageContainer.m_numMips-startLod, ti.numMips); m_requestedFormat = uint8_t(imageContainer.m_format); m_textureFormat = uint8_t(getViableTextureFormat(imageContainer) ); diff --git a/src/renderer_mtl.mm b/src/renderer_mtl.mm index da5977d8b..b6fe56ef8 100644 --- a/src/renderer_mtl.mm +++ b/src/renderer_mtl.mm @@ -2591,6 +2591,7 @@ namespace bgfx { namespace mtl , imageContainer.m_numLayers , imageContainer.m_format ); + ti.numMips = bx::min(imageContainer.m_numMips-startLod, ti.numMips); m_flags = _flags; m_width = ti.width;