Update gles.patch

This commit is contained in:
offtkp 2024-07-21 17:40:43 +03:00
parent b90c15919b
commit 82df95cf88

24
.github/gles.patch vendored
View file

@ -21,7 +21,7 @@ index 990e2f80..2e7842ac 100644
void main() { void main() {
diff --git a/src/host_shaders/opengl_fragment_shader.frag b/src/host_shaders/opengl_fragment_shader.frag diff --git a/src/host_shaders/opengl_fragment_shader.frag b/src/host_shaders/opengl_fragment_shader.frag
index 9f369e39..b4bb19d3 100644 index b9f9fe4c..f1cf286f 100644
--- a/src/host_shaders/opengl_fragment_shader.frag --- a/src/host_shaders/opengl_fragment_shader.frag
+++ b/src/host_shaders/opengl_fragment_shader.frag +++ b/src/host_shaders/opengl_fragment_shader.frag
@@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
@ -31,8 +31,8 @@ index 9f369e39..b4bb19d3 100644
in vec4 v_quaternion; in vec4 v_quaternion;
in vec4 v_colour; in vec4 v_colour;
@@ -164,11 +165,17 @@ float lutLookup(uint lut, int index) { @@ -166,11 +167,17 @@ float lutLookup(uint lut, int index) {
return texelFetch(u_tex_lighting_lut, ivec2(index, int(lut)), 0).r; return texelFetch(u_tex_luts, ivec2(index, int(lut)), 0).r;
} }
+// some gles versions have bitfieldExtractCompat and complain if you redefine it, some don't and compile error, using this instead +// some gles versions have bitfieldExtractCompat and complain if you redefine it, some don't and compile error, using this instead
@ -50,7 +50,7 @@ index 9f369e39..b4bb19d3 100644
} }
// Convert an arbitrary-width floating point literal to an f32 // Convert an arbitrary-width floating point literal to an f32
@@ -208,16 +215,16 @@ float lightLutLookup(uint environment_id, uint lut_id, uint light_id, vec3 light @@ -210,16 +217,16 @@ float lightLutLookup(uint environment_id, uint lut_id, uint light_id, vec3 light
bool current_sampler_enabled = isSamplerEnabled(environment_id, lut_id); // 7 luts per environment bool current_sampler_enabled = isSamplerEnabled(environment_id, lut_id); // 7 luts per environment
@ -70,7 +70,7 @@ index 9f369e39..b4bb19d3 100644
switch (input_id) { switch (input_id) {
case 0u: { case 0u: {
delta = dot(normal, normalize(half_vector)); delta = dot(normal, normalize(half_vector));
@@ -239,11 +246,11 @@ float lightLutLookup(uint environment_id, uint lut_id, uint light_id, vec3 light @@ -241,11 +248,11 @@ float lightLutLookup(uint environment_id, uint lut_id, uint light_id, vec3 light
int GPUREG_LIGHTi_SPOTDIR_LOW = int(readPicaReg(0x0146u + (light_id << 4u))); int GPUREG_LIGHTi_SPOTDIR_LOW = int(readPicaReg(0x0146u + (light_id << 4u)));
int GPUREG_LIGHTi_SPOTDIR_HIGH = int(readPicaReg(0x0147u + (light_id << 4u))); int GPUREG_LIGHTi_SPOTDIR_HIGH = int(readPicaReg(0x0147u + (light_id << 4u)));
@ -86,7 +86,7 @@ index 9f369e39..b4bb19d3 100644
if ((se_x & 0x1000) == 0x1000) se_x |= 0xffffe000; if ((se_x & 0x1000) == 0x1000) se_x |= 0xffffe000;
if ((se_y & 0x1000) == 0x1000) se_y |= 0xffffe000; if ((se_y & 0x1000) == 0x1000) se_y |= 0xffffe000;
@@ -270,9 +277,9 @@ float lightLutLookup(uint environment_id, uint lut_id, uint light_id, vec3 light @@ -272,9 +279,9 @@ float lightLutLookup(uint environment_id, uint lut_id, uint light_id, vec3 light
} }
// 0 = enabled // 0 = enabled
@ -98,7 +98,7 @@ index 9f369e39..b4bb19d3 100644
delta = max(delta, 0.0); delta = max(delta, 0.0);
} else { } else {
delta = abs(delta); delta = abs(delta);
@@ -296,7 +303,7 @@ vec3 rotateVec3ByQuaternion(vec3 v, vec4 q) { @@ -298,7 +305,7 @@ vec3 rotateVec3ByQuaternion(vec3 v, vec4 q) {
// Implements the following algorthm: https://mathb.in/26766 // Implements the following algorthm: https://mathb.in/26766
void calcLighting(out vec4 primary_color, out vec4 secondary_color) { void calcLighting(out vec4 primary_color, out vec4 secondary_color) {
uint GPUREG_LIGHTING_ENABLE = readPicaReg(0x008Fu); uint GPUREG_LIGHTING_ENABLE = readPicaReg(0x008Fu);
@ -107,7 +107,7 @@ index 9f369e39..b4bb19d3 100644
primary_color = secondary_color = vec4(0.0); primary_color = secondary_color = vec4(0.0);
return; return;
} }
@@ -313,7 +320,7 @@ void calcLighting(out vec4 primary_color, out vec4 secondary_color) { @@ -315,7 +322,7 @@ void calcLighting(out vec4 primary_color, out vec4 secondary_color) {
GPUREG_LIGHTING_LUTINPUT_ABS = readPicaReg(0x01D0u); GPUREG_LIGHTING_LUTINPUT_ABS = readPicaReg(0x01D0u);
GPUREG_LIGHTING_LUTINPUT_SELECT = readPicaReg(0x01D1u); GPUREG_LIGHTING_LUTINPUT_SELECT = readPicaReg(0x01D1u);
@ -116,7 +116,7 @@ index 9f369e39..b4bb19d3 100644
// Bump mode is ignored for now because it breaks some games ie. Toad Treasure Tracker // Bump mode is ignored for now because it breaks some games ie. Toad Treasure Tracker
switch (bump_mode) { switch (bump_mode) {
@@ -326,15 +333,15 @@ void calcLighting(out vec4 primary_color, out vec4 secondary_color) { @@ -328,15 +335,15 @@ void calcLighting(out vec4 primary_color, out vec4 secondary_color) {
vec4 diffuse_sum = vec4(0.0, 0.0, 0.0, 1.0); vec4 diffuse_sum = vec4(0.0, 0.0, 0.0, 1.0);
vec4 specular_sum = vec4(0.0, 0.0, 0.0, 1.0); vec4 specular_sum = vec4(0.0, 0.0, 0.0, 1.0);
@ -135,7 +135,7 @@ index 9f369e39..b4bb19d3 100644
uint GPUREG_LIGHTi_SPECULAR0 = readPicaReg(0x0140u + (light_id << 4u)); uint GPUREG_LIGHTi_SPECULAR0 = readPicaReg(0x0140u + (light_id << 4u));
uint GPUREG_LIGHTi_SPECULAR1 = readPicaReg(0x0141u + (light_id << 4u)); uint GPUREG_LIGHTi_SPECULAR1 = readPicaReg(0x0141u + (light_id << 4u));
@@ -346,12 +353,12 @@ void calcLighting(out vec4 primary_color, out vec4 secondary_color) { @@ -348,12 +355,12 @@ void calcLighting(out vec4 primary_color, out vec4 secondary_color) {
float light_distance; float light_distance;
vec3 light_position = vec3( vec3 light_position = vec3(
@ -151,7 +151,7 @@ index 9f369e39..b4bb19d3 100644
light_vector = light_position + v_view; light_vector = light_position + v_view;
} }
@@ -367,23 +374,23 @@ void calcLighting(out vec4 primary_color, out vec4 secondary_color) { @@ -369,23 +376,23 @@ void calcLighting(out vec4 primary_color, out vec4 secondary_color) {
float NdotL = dot(normal, light_vector); // N dot Li float NdotL = dot(normal, light_vector); // N dot Li
// Two sided diffuse // Two sided diffuse
@ -181,7 +181,7 @@ index 9f369e39..b4bb19d3 100644
float distance_attenuation_bias = decodeFP(GPUREG_LIGHTi_ATTENUATION_BIAS, 7u, 12u); float distance_attenuation_bias = decodeFP(GPUREG_LIGHTi_ATTENUATION_BIAS, 7u, 12u);
float distance_attenuation_scale = decodeFP(GPUREG_LIGHTi_ATTENUATION_SCALE, 7u, 12u); float distance_attenuation_scale = decodeFP(GPUREG_LIGHTi_ATTENUATION_SCALE, 7u, 12u);
@@ -428,8 +435,8 @@ void calcLighting(out vec4 primary_color, out vec4 secondary_color) { @@ -430,8 +437,8 @@ void calcLighting(out vec4 primary_color, out vec4 secondary_color) {
specular_sum.rgb += light_factor * clamp_factor * (specular0 + specular1); specular_sum.rgb += light_factor * clamp_factor * (specular0 + specular1);
} }