diff --git a/VisualC/SDL/SDL.vcxproj b/VisualC/SDL/SDL.vcxproj index 1a07f3c2f..f011b1f64 100644 --- a/VisualC/SDL/SDL.vcxproj +++ b/VisualC/SDL/SDL.vcxproj @@ -388,6 +388,7 @@ + @@ -401,6 +402,8 @@ + + @@ -690,4 +693,4 @@ - + \ No newline at end of file diff --git a/VisualC/SDL/SDL.vcxproj.filters b/VisualC/SDL/SDL.vcxproj.filters index 7c0f5190f..4f292f1bf 100644 --- a/VisualC/SDL/SDL.vcxproj.filters +++ b/VisualC/SDL/SDL.vcxproj.filters @@ -187,6 +187,9 @@ {0000fbfe2d21e4f451142e7d0e870000} + + {5115ba31-20f8-4eab-a8c5-6a572ab78ff7} + @@ -853,6 +856,9 @@ + + render\vulkan + @@ -1434,8 +1440,17 @@ + + render\vulkan + + + render\vulkan + - + + + + \ No newline at end of file diff --git a/include/build_config/SDL_build_config_windows.h b/include/build_config/SDL_build_config_windows.h index a8d2dc4fd..55f4f7c53 100644 --- a/include/build_config/SDL_build_config_windows.h +++ b/include/build_config/SDL_build_config_windows.h @@ -305,6 +305,10 @@ typedef unsigned int uintptr_t; /* Enable Vulkan support */ #define SDL_VIDEO_VULKAN 1 +#ifndef SDL_VIDEO_RENDER_VULKAN +#define SDL_VIDEO_RENDER_VULKAN 1 +#endif + /* Enable system power support */ #define SDL_POWER_WINDOWS 1 diff --git a/src/render/vulkan/SDL_render_vulkan.c b/src/render/vulkan/SDL_render_vulkan.c index 9fcba37aa..45808901c 100644 --- a/src/render/vulkan/SDL_render_vulkan.c +++ b/src/render/vulkan/SDL_render_vulkan.c @@ -31,13 +31,12 @@ #define VK_NO_PROTOTYPES -#include "SDL_vulkan.h" -#include "SDL_shaders_vulkan.h" -#include +#include "../../video/SDL_vulkan_internal.h" +#include "../../video/SDL_sysvideo.h" #include "../SDL_sysrender.h" -#include "../SDL_sysvideo.h" #include "../SDL_d3dmath.h" #include "../../video/SDL_pixels_c.h" +#include "SDL_shaders_vulkan.h" extern const char *SDL_Vulkan_GetResultString(VkResult result); @@ -526,7 +525,7 @@ static void VULKAN_DestroyAll(SDL_Renderer *renderer) rendererData->pipelineLayouts[i] = VK_NULL_HANDLE; } } - for (uint32_t i = 0; i < rendererData->pipelineStateCount; i++) { + for (int i = 0; i < rendererData->pipelineStateCount; i++) { vkDestroyPipeline(rendererData->device, rendererData->pipelineStates[i].pipeline, NULL); } SDL_free(rendererData->pipelineStates); @@ -534,7 +533,7 @@ static void VULKAN_DestroyAll(SDL_Renderer *renderer) if (rendererData->currentUploadBuffer) { for (uint32_t i = 0; i < rendererData->swapchainImageCount; ++i) { - for (uint32_t j = 0; j < rendererData->currentUploadBuffer[i]; ++j) { + for (int j = 0; j < rendererData->currentUploadBuffer[i]; ++j) { VULKAN_DestroyBuffer(rendererData, &rendererData->uploadBuffers[i][j]); } SDL_free(rendererData->uploadBuffers[i]); @@ -914,7 +913,7 @@ static void VULKAN_ResetCommandList(VULKAN_RenderData *rendererData) rendererData->currentConstantBufferOffset = -1; /* Release any upload buffers that were inflight */ - for (uint32_t i = 0; i < rendererData->currentUploadBuffer[rendererData->currentCommandBufferIndex]; ++i) { + for (int i = 0; i < rendererData->currentUploadBuffer[rendererData->currentCommandBufferIndex]; ++i) { VULKAN_DestroyBuffer(rendererData, &rendererData->uploadBuffers[rendererData->currentCommandBufferIndex][i]); } rendererData->currentUploadBuffer[rendererData->currentCommandBufferIndex] = 0; @@ -1843,7 +1842,7 @@ static VkResult VULKAN_CreateFramebuffersAndRenderPasses(SDL_Renderer *renderer, framebufferCreateInfo.height = rendererData->swapchainSize.height; framebufferCreateInfo.layers = 1; - for (uint32_t i = 0; i < imageViewCount; i++) { + for (int i = 0; i < imageViewCount; i++) { framebufferCreateInfo.pAttachments = &imageViews[i]; result = vkCreateFramebuffer(rendererData->device, &framebufferCreateInfo, NULL, &framebuffers[i]); if (result != VK_SUCCESS) { @@ -3107,7 +3106,7 @@ static SDL_bool VULKAN_SetDrawState(SDL_Renderer *renderer, const SDL_RenderComm /* Align the next address to the minUniformBufferOffsetAlignment */ VkDeviceSize alignment = rendererData->physicalDeviceProperties.limits.minUniformBufferOffsetAlignment; SDL_assert(rendererData->currentConstantBufferOffset >= 0 ); - rendererData->currentConstantBufferOffset += (sizeof(PixelShaderConstants) + alignment - 1) & ~(alignment - 1); + rendererData->currentConstantBufferOffset += (int32_t)(sizeof(PixelShaderConstants) + alignment - 1) & ~(alignment - 1); constantBufferOffset = rendererData->currentConstantBufferOffset; } @@ -3303,7 +3302,7 @@ static SDL_bool VULKAN_SetCopyState(SDL_Renderer *renderer, const SDL_RenderComm static void VULKAN_DrawPrimitives(SDL_Renderer *renderer, VkPrimitiveTopology primitiveTopology, const size_t vertexStart, const size_t vertexCount) { VULKAN_RenderData *rendererData = (VULKAN_RenderData *)renderer->driverdata; - vkCmdDraw(rendererData->currentCommandBuffer, vertexCount, 1, vertexStart, 0); + vkCmdDraw(rendererData->currentCommandBuffer, (uint32_t)vertexCount, 1, (uint32_t)vertexStart, 0); } static void VULKAN_InvalidateCachedState(SDL_Renderer *renderer)