diff --git a/src/Nazara/Renderer/Texture.cpp b/src/Nazara/Renderer/Texture.cpp index ce8b0b4e0..5406a405d 100644 --- a/src/Nazara/Renderer/Texture.cpp +++ b/src/Nazara/Renderer/Texture.cpp @@ -83,6 +83,9 @@ namespace Nz break; } + if (!params.buildMipmaps) + texParams.levelCount = image.GetLevelCount(); + std::shared_ptr texture = params.renderDevice->InstantiateTexture(texParams, image.GetConstPixels(), params.buildMipmaps); texture->SetFilePath(image.GetFilePath()); diff --git a/src/Nazara/VulkanRenderer/VulkanTexture.cpp b/src/Nazara/VulkanRenderer/VulkanTexture.cpp index d6ce433b0..f12a50e6f 100644 --- a/src/Nazara/VulkanRenderer/VulkanTexture.cpp +++ b/src/Nazara/VulkanRenderer/VulkanTexture.cpp @@ -19,10 +19,10 @@ namespace Nz m_device(device), m_image(VK_NULL_HANDLE), m_allocation(nullptr), - m_textureInfo(textureInfo), - m_textureViewInfo(textureInfo) + m_textureInfo(textureInfo) { m_textureInfo.levelCount = std::min(m_textureInfo.levelCount, Image::GetMaxLevel(m_textureInfo.type, m_textureInfo.width, m_textureInfo.height, m_textureInfo.depth)); + m_textureViewInfo = m_textureInfo; VkImageViewCreateInfo createInfoView = {}; createInfoView.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; diff --git a/tests/ComputeTest/main.cpp b/tests/ComputeTest/main.cpp index e599d4aa0..b9fe1a91d 100644 --- a/tests/ComputeTest/main.cpp +++ b/tests/ComputeTest/main.cpp @@ -54,6 +54,7 @@ int main() texParams.renderDevice = device; texParams.loadFormat = Nz::PixelFormat::RGBA8; texParams.usageFlags = Nz::TextureUsage::ShaderReadWrite | Nz::TextureUsage::ShaderSampling | Nz::TextureUsage::TransferDestination; + texParams.buildMipmaps = false; std::shared_ptr texture = Nz::Texture::LoadFromFile(resourceDir / "lynix.jpg", texParams);