mirror of
https://github.com/love2d/love.git
synced 2026-08-19 04:06:17 +02:00
vulkan: fix Shader::attach()
This commit is contained in:
@@ -22,7 +22,10 @@ namespace love {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void attach() override {
|
void attach() override {
|
||||||
Shader::current = this;
|
if (Shader::current != this) {
|
||||||
|
Graphics::flushBatchedDrawsGlobal();
|
||||||
|
Shader::current = this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ptrdiff_t getHandle() const { return 0; }
|
ptrdiff_t getHandle() const { return 0; }
|
||||||
|
|||||||
@@ -172,14 +172,10 @@ namespace love {
|
|||||||
textureFormat.internalFormat = VK_FORMAT_R8G8B8A8_SRGB;
|
textureFormat.internalFormat = VK_FORMAT_R8G8B8A8_SRGB;
|
||||||
break;
|
break;
|
||||||
case PIXELFORMAT_BGRA8_UNORM:
|
case PIXELFORMAT_BGRA8_UNORM:
|
||||||
textureFormat.internalFormat = VK_FORMAT_R8G8B8A8_UNORM;
|
textureFormat.internalFormat = VK_FORMAT_B8G8R8A8_UNORM;
|
||||||
textureFormat.swizzleR = VK_COMPONENT_SWIZZLE_B;
|
|
||||||
textureFormat.swizzleB = VK_COMPONENT_SWIZZLE_R;
|
|
||||||
break;
|
break;
|
||||||
case PIXELFORMAT_BGRA8_UNORM_sRGB:
|
case PIXELFORMAT_BGRA8_UNORM_sRGB:
|
||||||
textureFormat.internalFormat = VK_FORMAT_R8G8B8A8_SRGB;
|
textureFormat.internalFormat = VK_FORMAT_B8G8R8A8_SRGB;
|
||||||
textureFormat.swizzleR = VK_COMPONENT_SWIZZLE_B;
|
|
||||||
textureFormat.swizzleB = VK_COMPONENT_SWIZZLE_R;
|
|
||||||
break;
|
break;
|
||||||
case PIXELFORMAT_RGBA8_INT:
|
case PIXELFORMAT_RGBA8_INT:
|
||||||
textureFormat.internalFormat = VK_FORMAT_R8G8B8A8_SINT;
|
textureFormat.internalFormat = VK_FORMAT_R8G8B8A8_SINT;
|
||||||
@@ -265,12 +261,22 @@ namespace love {
|
|||||||
// as specified at https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProperties.html
|
// as specified at https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProperties.html
|
||||||
std::string Vulkan::getVendorName(uint32_t vendorId) {
|
std::string Vulkan::getVendorName(uint32_t vendorId) {
|
||||||
switch (vendorId) {
|
switch (vendorId) {
|
||||||
|
case 4130:
|
||||||
|
return "AMD";
|
||||||
case 4318:
|
case 4318:
|
||||||
return "Nvidia";
|
return "Nvidia";
|
||||||
case 8086:
|
case 8086:
|
||||||
return "Intel";
|
return "Intel";
|
||||||
case 4130:
|
case 4203:
|
||||||
return "Advanced Micro Devices";
|
return "Apple";
|
||||||
|
case 5140:
|
||||||
|
return "Microsoft";
|
||||||
|
case 5045:
|
||||||
|
return "ARM";
|
||||||
|
case 20803:
|
||||||
|
return "Qualcomm";
|
||||||
|
case 5348:
|
||||||
|
return "Broadcom";
|
||||||
default:
|
default:
|
||||||
return "unknown";
|
return "unknown";
|
||||||
}
|
}
|
||||||
@@ -279,7 +285,7 @@ namespace love {
|
|||||||
std::string Vulkan::getVulkanApiVersion(uint32_t version) {
|
std::string Vulkan::getVulkanApiVersion(uint32_t version) {
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
|
|
||||||
ss << "." << VK_API_VERSION_MAJOR(version)
|
ss << VK_API_VERSION_MAJOR(version)
|
||||||
<< "." << VK_API_VERSION_MINOR(version)
|
<< "." << VK_API_VERSION_MINOR(version)
|
||||||
<< "." << VK_API_VERSION_PATCH(version);
|
<< "." << VK_API_VERSION_PATCH(version);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user