From 8c2bfd296f22053a75e95a0429e05083bf8d727c Mon Sep 17 00:00:00 2001 From: Lynix Date: Mon, 1 Jun 2020 16:16:11 +0200 Subject: [PATCH 1/6] Core/StringExt: Prevent empty match call --- include/Nazara/Core/StringExt.inl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/Nazara/Core/StringExt.inl b/include/Nazara/Core/StringExt.inl index 71a04ebff..0ab5c0cff 100644 --- a/include/Nazara/Core/StringExt.inl +++ b/include/Nazara/Core/StringExt.inl @@ -60,7 +60,10 @@ namespace Nz return false; } - return func(str.substr(previousPos)); + if (previousPos < str.size()) + return func(str.substr(previousPos)); + else + return true; } template From 960a5c2d057d7dbffdae365f368d8fdfb9de2e51 Mon Sep 17 00:00:00 2001 From: Lynix Date: Mon, 1 Jun 2020 16:16:41 +0200 Subject: [PATCH 2/6] OpenGLRenderer: Fix extension loading --- src/Nazara/OpenGLRenderer/Wrapper/Context.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Nazara/OpenGLRenderer/Wrapper/Context.cpp b/src/Nazara/OpenGLRenderer/Wrapper/Context.cpp index 5d2c9f366..13ac8ebfa 100644 --- a/src/Nazara/OpenGLRenderer/Wrapper/Context.cpp +++ b/src/Nazara/OpenGLRenderer/Wrapper/Context.cpp @@ -195,12 +195,11 @@ namespace Nz::GL NazaraWarning("Failed to decode OpenGL version: " + std::string(versionString)); // Load extensions - std::string_view extensionList = reinterpret_cast(glGetString(GL_EXTENSIONS)); - SplitString(extensionList, " ", [&](std::string_view extension) - { - m_supportedExtensions.emplace(extension); - return true; - }); + GLint extensionCount = 0; + glGetIntegerv(GL_NUM_EXTENSIONS, &extensionCount); + + for (GLint i = 0; i < extensionCount; ++i) + m_supportedExtensions.emplace(reinterpret_cast(glGetStringi(GL_EXTENSIONS, i))); m_extensionStatus.fill(ExtensionStatus::NotSupported); From 8f04412a3ffaf81f56e80fbb5c3d9b117e766925 Mon Sep 17 00:00:00 2001 From: Lynix Date: Mon, 1 Jun 2020 16:17:04 +0200 Subject: [PATCH 3/6] OpenGLRenderer: Fix GLES context creation core profile bit has not meaning to OpenGL ES --- src/Nazara/OpenGLRenderer/Wrapper/Win32/WGLContext.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Nazara/OpenGLRenderer/Wrapper/Win32/WGLContext.cpp b/src/Nazara/OpenGLRenderer/Wrapper/Win32/WGLContext.cpp index c5faa2bfa..e07a21294 100644 --- a/src/Nazara/OpenGLRenderer/Wrapper/Win32/WGLContext.cpp +++ b/src/Nazara/OpenGLRenderer/Wrapper/Win32/WGLContext.cpp @@ -119,7 +119,7 @@ namespace Nz::GL WGL_CONTEXT_MAJOR_VERSION_ARB, int(version.major), WGL_CONTEXT_MINOR_VERSION_ARB, int(version.minor), - WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB | WGL_CONTEXT_ES_PROFILE_BIT_EXT + WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_ES_PROFILE_BIT_EXT }; m_handle = baseContext->wglCreateContextAttribsARB(m_deviceContext, nullptr, attributes.data()); From a73251f2dfedbf825ef4a21284ab79f58ff1f6b2 Mon Sep 17 00:00:00 2001 From: Lynix Date: Mon, 1 Jun 2020 17:11:34 +0200 Subject: [PATCH 4/6] OpenGLRenderer: Fix version parsing OpenGL ES 3.0 implementations don't seem to follow the spec, use GL_MAJOR_VERSION and GL_MINOR_VERSION instead --- src/Nazara/OpenGLRenderer/Wrapper/Context.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Nazara/OpenGLRenderer/Wrapper/Context.cpp b/src/Nazara/OpenGLRenderer/Wrapper/Context.cpp index 13ac8ebfa..902f22813 100644 --- a/src/Nazara/OpenGLRenderer/Wrapper/Context.cpp +++ b/src/Nazara/OpenGLRenderer/Wrapper/Context.cpp @@ -185,14 +185,14 @@ namespace Nz::GL return -1; }; - std::string_view versionString = reinterpret_cast(glGetString(GL_VERSION)); - if (versionString.size() > 2 && DecodeDigit(versionString[0]) >= 0 && versionString[1] == '.' && DecodeDigit(versionString[2]) >= 0) - { - m_params.glMajorVersion = DecodeDigit(versionString[0]); - m_params.glMinorVersion = DecodeDigit(versionString[2]); - } - else - NazaraWarning("Failed to decode OpenGL version: " + std::string(versionString)); + GLint majorVersion = 0; + glGetIntegerv(GL_MAJOR_VERSION, &majorVersion); + + GLint minorVersion = 0; + glGetIntegerv(GL_MINOR_VERSION, &minorVersion); + + m_params.glMajorVersion = majorVersion; + m_params.glMinorVersion = minorVersion; // Load extensions GLint extensionCount = 0; From e4c95da19ade726b85bf2229fa47afbe6f8fa5ed Mon Sep 17 00:00:00 2001 From: Lynix Date: Mon, 1 Jun 2020 17:13:58 +0200 Subject: [PATCH 5/6] Update Vulkan shaders --- .../bin/resources/shaders/triangle.frag.spv | Bin 1296 -> 1296 bytes .../bin/resources/shaders/triangle.vert.spv | Bin 1912 -> 1640 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/bin/resources/shaders/triangle.frag.spv b/examples/bin/resources/shaders/triangle.frag.spv index 855cf613abcacf778f7aa6a6e5a9c4483ac84a76..37fc46adf243096a0eb2599f16abb5740e8c4068 100644 GIT binary patch delta 12 TcmbQhHGykF1|$2%%;hWq8U_RU delta 12 TcmbQhHGykF1|!GD%;hWq8Vdva diff --git a/examples/bin/resources/shaders/triangle.vert.spv b/examples/bin/resources/shaders/triangle.vert.spv index 58b0936f4f765cd7332585bf21b61883de859675..5692ffb022500d33c1090ae90e84cac55a4792dc 100644 GIT binary patch delta 54 zcmeyt_kxF)nMs+Qfq{{M0|<>K@|rSoPjuGYSdzoInTN@RadQFl0mjV}SX&r5{sI+Q G05JeQybIv~ delta 318 zcmaFC^Mj9 zR(QGqMc5duA!43+#U+V($*G<$o3ApuGs?O%uz;0w1EpDk7{muD1@YN7OEMp3j1>h6 z83DNpKnw!fP`)vc%?QK_K)wl(W(Hz5DBluDgXF}4*cvDg;)7fT5`*zU)-Z0q$h(X5N0=0sSGy`IgTs@R;4i$sxvjFmu_1OU(0}=zN`wO(x0*C>@ C3LwD% From ee936800830a9654ab827635bd0a792756510833 Mon Sep 17 00:00:00 2001 From: ImperatorS79 Date: Wed, 8 Jul 2020 16:06:47 +0200 Subject: [PATCH 6/6] Fix arrayLayers not being correctly computed in VulkanTexture.cpp for ImageType_2D_array --- src/Nazara/VulkanRenderer/VulkanTexture.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Nazara/VulkanRenderer/VulkanTexture.cpp b/src/Nazara/VulkanRenderer/VulkanTexture.cpp index 55d71c3e6..968e1496e 100644 --- a/src/Nazara/VulkanRenderer/VulkanTexture.cpp +++ b/src/Nazara/VulkanRenderer/VulkanTexture.cpp @@ -88,7 +88,7 @@ namespace Nz createInfo.extent.width = params.width; createInfo.extent.height = params.height; createInfo.extent.depth = 1; - createInfo.arrayLayers = params.height; + createInfo.arrayLayers = params.depth; break; case ImageType_3D: