aboutsummaryrefslogtreecommitdiff
path: root/render/gles2/shaders
AgeCommit message (Collapse)Author
2023-05-28renderer/gles2: Compute texture coordinates based off of vertex positionsAlexander Orzechowski
2023-05-28renderer/gles2: Interpret matrix as column major in shaderAlexander Orzechowski
Avoids us needing to transpose.
2023-02-02render/gles2: default to highp if availableSimon Ser
The spec [1] says that the maximum value for a mediump float is at least 2¹⁴ in section 4.5.2. However, when using a 4k resolution texture coordinates will exceed this value. This causes issues on drivers which implement mediump as a 16-bit [2]. Switch to highp. There's a twist: on GLES2, support for highp is optional. So we need to guard it with cute GL_FRAGMENT_PRECISION_HIGH ifdefs. [1]: https://registry.khronos.org/OpenGL/specs/es/2.0/GLSL_ES_Specification_1.00.pdf [2]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21082
2022-10-28render/gles2: de-duplicate vertex shadersSimon Ser
The vertex shaders for quads and textures are identical.
2022-10-28render/gles2: move color uniform from quad.vert to quad.fragSimon Ser
We have no use for a v_color varying. We can use the uniform directly from the fragment shader without getting the vertex shader involved.
2022-10-28render/gles2: move shaders to individual filesSimon Ser
Instead of having a C file with strings for each shader, move each shader into its own file. Use a small POSIX shell script to convert the files into C strings (can't wait for C23 #embed...). The benefits from this are: - Improved readability and syntax highlighting. - Line numbers in shader compiler errors are easier to make sense of. - Consistency with the Vulkan renderer. - Shaders will become more complicated as we add color management features.