fix(rendering): check sampler validity in VkTexture::isValid(), fix Windows build

- VkTexture::isValid() now checks both image AND sampler handles. Previously
  it only checked the image, so a texture with a valid image but NULL sampler
  would pass validation and get bound to a descriptor set. On MoltenVK (macOS)
  this renders as pink/magenta boxes; the fallback white texture is now
  correctly used instead.

- Fix fs::path to std::string implicit conversion in asset extractor that
  broke the Windows (MSYS2/clang) CI build.
This commit is contained in:
Kelsi Davis 2026-04-05 01:30:29 -07:00
parent 50fdfd2e22
commit bcf1015149
2 changed files with 3 additions and 3 deletions

View file

@ -60,7 +60,7 @@ public:
uint32_t getHeight() const { return image_.extent.height; }
VkFormat getFormat() const { return image_.format; }
uint32_t getMipLevels() const { return mipLevels_; }
bool isValid() const { return image_.image != VK_NULL_HANDLE; }
bool isValid() const { return image_.image != VK_NULL_HANDLE && sampler_ != VK_NULL_HANDLE; }
// Write descriptor info for binding
VkDescriptorImageInfo descriptorInfo(VkImageLayout layout =