diff --git a/hw/xbox/nv2a/pgraph/glsl/psh.c b/hw/xbox/nv2a/pgraph/glsl/psh.c index e3a566a347..b55aece211 100644 --- a/hw/xbox/nv2a/pgraph/glsl/psh.c +++ b/hw/xbox/nv2a/pgraph/glsl/psh.c @@ -777,8 +777,8 @@ static MString* psh_convert(struct PixelShader *ps) "dotmap_minus1_to_1_gl", "dotmap_minus1_to_1", "dotmap_hilo_1", - "dotmap_hilo_hemisphere_d3d", - "dotmap_hilo_hemisphere_gl", + "dotmap_hilo_hemisphere", //D3D + "dotmap_hilo_hemisphere", //GL "dotmap_hilo_hemisphere", }; @@ -822,14 +822,11 @@ static MString* psh_convert(struct PixelShader *ps) " float lo_f = float(lo_i) / float(0xffff);\n" " return vec3(hi_f, lo_f, 1.0);\n" "}\n" - "vec3 dotmap_hilo_hemisphere_d3d(vec4 col) {\n" - " return col.rgb;\n" // FIXME - "}\n" - "vec3 dotmap_hilo_hemisphere_gl(vec4 col) {\n" - " return col.rgb;\n" // FIXME - "}\n" "vec3 dotmap_hilo_hemisphere(vec4 col) {\n" - " return col.rgb;\n" // FIXME + " uvec4 _col = uvec4(col * 255);\n" + " vec2 hilo = vec2(_col.a << 8 | _col.r, _col.g << 8 | _col.b);\n" + " hilo = (hilo - 65536.0f*step(32767.5f, hilo)) / 32767.0f;\n" + " return vec3(hilo, sqrt(max(1.0f - dot(hilo, hilo), 0.0f)));\n" "}\n" "const float[9] gaussian3x3 = float[9](\n" " 1.0/16.0, 2.0/16.0, 1.0/16.0,\n"