fix: return UINT32_MAX from findMemType on failure, add [[nodiscard]]

The findMemType/findMemoryType helper in auth_screen, loading_screen,
and vk_context returned 0 on failure — a valid memory type index.
Changed to return UINT32_MAX and log an error, so vkAllocateMemory
receives an invalid index and fails cleanly rather than silently
using the wrong memory type.

Add [[nodiscard]] to VkBuffer::uploadToGPU/createMapped and
VkContext::initialize/recreateSwapchain so callers that ignore
failure are flagged at compile time. Suppress with (void) cast at
3 call sites where failure is non-actionable (resize best-effort).
This commit is contained in:
Kelsi 2026-03-27 14:53:29 -07:00
parent 7028dd64c1
commit 5b91ef398e
6 changed files with 13 additions and 10 deletions

View file

@ -24,11 +24,11 @@ public:
VkBuffer& operator=(VkBuffer&& other) noexcept;
// Create a GPU-local buffer and upload data via staging
bool uploadToGPU(VkContext& ctx, const void* data, VkDeviceSize size,
[[nodiscard]] bool uploadToGPU(VkContext& ctx, const void* data, VkDeviceSize size,
VkBufferUsageFlags usage);
// Create a host-visible buffer (for uniform/dynamic data updated each frame)
bool createMapped(VmaAllocator allocator, VkDeviceSize size,
[[nodiscard]] bool createMapped(VmaAllocator allocator, VkDeviceSize size,
VkBufferUsageFlags usage);
// Update mapped buffer contents (only valid for mapped buffers)

View file

@ -32,11 +32,11 @@ public:
VkContext(const VkContext&) = delete;
VkContext& operator=(const VkContext&) = delete;
bool initialize(SDL_Window* window);
[[nodiscard]] bool initialize(SDL_Window* window);
void shutdown();
// Swapchain management
bool recreateSwapchain(int width, int height);
[[nodiscard]] bool recreateSwapchain(int width, int height);
// Frame operations
VkCommandBuffer beginFrame(uint32_t& imageIndex);