mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
mesa/main: drop use_legacy_math_rules
Seems the only thing that really needs this is fpow(0, 0), which should return NaN, but then gets multiplied with zero. Let's fix that by doing a bcsel instead of fmul to select the result here. While we're at it, get rid of the fabs for stop, which isn't needed. This fixes a piglits failure for most (if not all?) drivers that doesn't support legacy math rules. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Acked-by: Emma Anholt <emma@anholt.net> Reviewed-by: Qiang Yu <yuq825@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22789>
This commit is contained in:
parent
0a9473b32d
commit
6ea7bdb152
11 changed files with 2 additions and 17 deletions
|
|
@ -26,7 +26,6 @@ spec@!opengl 1.0@gl-1.0-edgeflag,Fail
|
|||
spec@!opengl 1.0@gl-1.0-edgeflag-const,Fail
|
||||
spec@!opengl 1.0@gl-1.0-edgeflag-quads,Fail
|
||||
spec@!opengl 1.0@gl-1.0-no-op-paths,Fail
|
||||
spec@!opengl 1.0@gl-1.0-spot-light,Fail
|
||||
spec@!opengl 1.0@gl-1.0-user-clip-all-planes,Fail
|
||||
spec@!opengl 1.0@rasterpos,Crash
|
||||
spec@!opengl 1.1@depthstencil-default_fb-drawpixels-24_8 samples=2,Fail
|
||||
|
|
|
|||
|
|
@ -738,7 +738,6 @@ spec@!opengl 1.0@gl-1.0-logicop@GL_XOR,Fail
|
|||
spec@!opengl 1.0@gl-1.0-no-op-paths,Fail
|
||||
spec@!opengl 1.0@gl-1.0-ortho-pos,Fail
|
||||
spec@!opengl 1.0@gl-1.0-scissor-stencil-clear,Fail
|
||||
spec@!opengl 1.0@gl-1.0-spot-light,Fail
|
||||
spec@!opengl 1.0@gl-1.0-swapbuffers-behavior,Fail
|
||||
spec@!opengl 1.0@gl-1.0-user-clip-all-planes,Fail
|
||||
spec@!opengl 1.1@clipflat,Fail
|
||||
|
|
|
|||
|
|
@ -183,7 +183,6 @@ spec@!opengl 1.0@gl-1.0-edgeflag,Crash
|
|||
spec@!opengl 1.0@gl-1.0-edgeflag-quads,Crash
|
||||
spec@!opengl 1.0@gl-1.0-no-op-paths,Fail
|
||||
spec@!opengl 1.0@gl-1.0-scissor-offscreen,Fail
|
||||
spec@!opengl 1.0@gl-1.0-spot-light,Fail
|
||||
spec@!opengl 1.0@gl-1.0-user-clip-all-planes,Fail
|
||||
spec@!opengl 1.0@rasterpos,Crash
|
||||
spec@!opengl 1.1@depthstencil-default_fb-blit,Fail
|
||||
|
|
|
|||
|
|
@ -321,7 +321,6 @@ spec@!opengl 1.0@gl-1.0-edgeflag,Crash
|
|||
spec@!opengl 1.0@gl-1.0-edgeflag-quads,Crash
|
||||
spec@!opengl 1.0@gl-1.0-no-op-paths,Fail
|
||||
spec@!opengl 1.0@gl-1.0-scissor-offscreen,Fail
|
||||
spec@!opengl 1.0@gl-1.0-spot-light,Fail
|
||||
spec@!opengl 1.0@rasterpos,Crash
|
||||
spec@!opengl 1.1@polygon-mode,Fail
|
||||
spec@!opengl 1.1@polygon-mode-facing,Fail
|
||||
|
|
|
|||
|
|
@ -270,8 +270,6 @@ spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail
|
|||
# "Failure with Polygon Stipple set to fail mode."
|
||||
spec@!opengl 1.0@gl-1.0-no-op-paths,Fail
|
||||
|
||||
spec@!opengl 1.0@gl-1.0-spot-light,Fail
|
||||
|
||||
# crash in tgsi exec doing st_freedback_draw_vbo().
|
||||
spec@!opengl 1.0@rasterpos,Crash
|
||||
|
||||
|
|
|
|||
|
|
@ -276,8 +276,6 @@ spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail
|
|||
# "Failure with Polygon Stipple set to fail mode."
|
||||
spec@!opengl 1.0@gl-1.0-no-op-paths,Fail
|
||||
|
||||
spec@!opengl 1.0@gl-1.0-spot-light,Fail
|
||||
|
||||
# crash in tgsi exec doing st_freedback_draw_vbo().
|
||||
spec@!opengl 1.0@rasterpos,Crash
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ spec@!opengl 1.0@gl-1.0-beginend-coverage,Fail
|
|||
spec@!opengl 1.0@gl-1.0-beginend-coverage@glFlush,Fail
|
||||
spec@!opengl 1.0@gl-1.0-blend-func,Fail
|
||||
spec@!opengl 1.0@gl-1.0-no-op-paths,Fail
|
||||
spec@!opengl 1.0@gl-1.0-spot-light,Fail
|
||||
spec@!opengl 1.0@rasterpos,Fail
|
||||
spec@!opengl 1.0@rasterpos@glsl_vs_gs_linked,Fail
|
||||
spec@!opengl 1.0@rasterpos@glsl_vs_tes_linked,Fail
|
||||
|
|
|
|||
|
|
@ -575,7 +575,6 @@ spec@!opengl 1.0@gl-1.0-no-op-paths,Fail
|
|||
spec@!opengl 1.0@gl-1.0-ortho-pos,Fail
|
||||
spec@!opengl 1.0@gl-1.0-rastercolor,Fail
|
||||
spec@!opengl 1.0@gl-1.0-scissor-bitmap,Fail
|
||||
spec@!opengl 1.0@gl-1.0-spot-light,Fail
|
||||
spec@!opengl 1.0@gl-1.0-swapbuffers-behavior,Fail
|
||||
spec@!opengl 1.0@gl-1.0-user-clip-all-planes,Fail
|
||||
spec@!opengl 1.1@gl-1.1-xor-copypixels,Fail
|
||||
|
|
|
|||
|
|
@ -137,8 +137,6 @@ shaders@point-vertex-id gl_vertexid,Fail
|
|||
|
||||
spec@!opengl 1.0@gl-1.0-no-op-paths,Fail
|
||||
|
||||
spec@!opengl 1.0@gl-1.0-spot-light,Fail
|
||||
|
||||
spec@!opengl 1.0@gl-1.0-swapbuffers-behavior,Fail
|
||||
|
||||
spec@!opengl 1.1@depthstencil-default_fb-blit samples=16,Fail
|
||||
|
|
|
|||
|
|
@ -728,11 +728,10 @@ calculate_light_attenuation(struct tnl_program *p,
|
|||
|
||||
nir_ssa_def *spot = nir_fdot3(p->b, nir_fneg(p->b, VPpli),
|
||||
spot_dir_norm);
|
||||
nir_ssa_def *slt = nir_slt(p->b, nir_channel(p->b, spot_dir_norm, 3),
|
||||
nir_ssa_def *cmp = nir_flt(p->b, nir_channel(p->b, spot_dir_norm, 3),
|
||||
spot);
|
||||
spot = nir_fabs(p->b, spot);
|
||||
spot = nir_fpow(p->b, spot, nir_channel(p->b, attenuation, 3));
|
||||
att = nir_fmul(p->b, slt, spot);
|
||||
att = nir_bcsel(p->b, cmp, spot, nir_imm_zero(p->b, 1, 32));
|
||||
}
|
||||
|
||||
/* Calculate distance attenuation(See formula (2.4) at glspec 2.1 page 62):
|
||||
|
|
@ -1399,7 +1398,6 @@ create_new_program( const struct state_key *key,
|
|||
nir_shader *s = b.shader;
|
||||
|
||||
s->info.separate_shader = true;
|
||||
s->info.use_legacy_math_rules = true;
|
||||
|
||||
p.b = &b;
|
||||
|
||||
|
|
|
|||
|
|
@ -496,7 +496,6 @@ spec@!opengl 1.0@gl-1.0-edgeflag-const,Fail
|
|||
spec@!opengl 1.0@gl-1.0-edgeflag,Fail
|
||||
spec@!opengl 1.0@gl-1.0-edgeflag-quads,Fail
|
||||
spec@!opengl 1.0@gl-1.0-no-op-paths,Fail
|
||||
spec@!opengl 1.0@gl-1.0-spot-light,Fail
|
||||
spec@!opengl 1.0@rasterpos,Crash
|
||||
spec@!opengl 1.1@getteximage-formats,Fail
|
||||
spec@!opengl 1.1@linestipple@Factor 2x,Fail
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue