Bug 86980

Summary: [swrast] piglit fp-rfl regression
Product: Mesa Reporter: Vinson Lee <vlee>
Component: Mesa coreAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: brianp, eric, idr, jfonseca
Version: 10.5Keywords: bisected, regression
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2014-12-03 18:34:29 UTC
mesa: a2f2eebfdfb9c19e45792101fc5cad3dd3f0f4d6 (master 10.5.0-devel)

$ ./bin/fp-rfl -auto
Mesa: User error: GL_INVALID_OPERATION in glProgramStringARB(invalid storage size specifier "RFL")

Compiler Error (pos=414 line=-1): line 13, char 1: error: invalid storage size specifier "RFL"

1];
RFL	result.color
in program:
!!ARBfp1.0
OPTION	NV_fragment_program;
TEMP	tmp, axis, direction;

# Since we're calcuating per-fragment and the parameters are
# interpolated, the parameters must be normalized.
DP3	tmp.x, fragment.texcoord[0], fragment.texcoord[0];
DP3	tmp.y, fragment.texcoord[1], fragment.texcoord[1];
RCP	tmp.x, tmp.x;
RCP	tmp.y, tmp.y;
MUL	axis, tmp.x, fragment.texcoord[0];
MUL	direction, tmp.y, fragment.texcoord[1];
RFL	result.color, fragment.texcoord[0], fragment.texcoord[1];
ENDPIGLIT: {"result": "fail" }


There are only 'skip'ped commits left to test.
The first bad commit could be any of:
868f95f1da74cf6dd7468cba1b56664aad585ccb
a3688d686f147f4252d19b298ae26d4ac72c2e08
We cannot bisect more!
bisect run cannot continue any more


commit 868f95f1da74cf6dd7468cba1b56664aad585ccb
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Nov 12 16:35:05 2014 -0800

    mesa: Drop unused SFL/STR opcodes.
    
    They're part of NV_vertex_program2, which I'm pretty sure we're never
    going to support.
    
    Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
    Reviewed-by: Ian Roamnick <ian.d.romanick@intel.com>


commit a3688d686f147f4252d19b298ae26d4ac72c2e08
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Nov 12 16:39:49 2014 -0800

    mesa: Drop unused NV_fragment_program opcodes.
    
    The extension itself was deleted 2 years ago.  There are still some
    prog_instruction opcodes from NV_fp that exist because they're used by
    ir_to_mesa.cpp, though.
    
    Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
    Reviewed-by: Ian Roamnick <ian.d.romanick@intel.com>
Comment 1 Roland Scheidegger 2014-12-03 19:58:40 UTC
Looks like while indeed mesa doesn't support NV_fragment_program, it does however support NV_fragment_program_option, which layers these opcodes on top of ARB_fp.
Seems like either both of these commits need to be reverted or support for NV_fragment_program_option needs to be removed.
Comment 2 Ian Romanick 2014-12-03 20:04:47 UTC
(In reply to Roland Scheidegger from comment #1)
> Looks like while indeed mesa doesn't support NV_fragment_program, it does
> however support NV_fragment_program_option, which layers these opcodes on
> top of ARB_fp.
> Seems like either both of these commits need to be reverted or support for
> NV_fragment_program_option needs to be removed.

It looks like only classic swrast enables it, so I don't have a problem removing it.
Comment 3 Kenneth Graunke 2014-12-04 00:55:31 UTC
I started working on killing NV_fragment_program_option in 2012 - the nukefpopt branch of ~kwg/mesa.

IIRC, at the time, VMware cared a lot about SPECviewperf, and I thought that used it.  I might be wrong though.
Comment 4 Roland Scheidegger 2014-12-04 16:45:06 UTC
Brian would probably know about SPECviewperf, however since it apparently was only enabled in swrast it doesn't look like we were really depending on it. Unless there were plans to actually translate this stuff at some point...
Comment 5 Brian Paul 2014-12-04 16:53:16 UTC
Going from my notes, some of the catia tests use GL_NV_fragment_program[23] features (which like, GL_NV_fragment_program_option, layer on GL_ARB_fragment_program).  And those tests fail with Mesa because viewperf doesn't even bother to check if the extensions are supported.

But I don't think any viewperf tests specifically use GL_NV_fragment_program_option.
Comment 6 Vinson Lee 2014-12-13 08:53:38 UTC
These other tests piglit have regressed as well on swrast.
asmparsertest ARBfp1.0 size_specifier-07
asmparsertest ARBfp1.0 size_specifier-08
fp-set-02
fp-unpack-01
Comment 7 Vinson Lee 2015-02-14 02:20:20 UTC
mesa: 8323796840a343ee39687cc8e8b424ee43d6fee7 (master 10.6.0-devel)

piglit fp-rfl regression on swrast is still present.
Comment 8 Vinson Lee 2015-06-21 04:11:30 UTC
commit 88305dfd0b79ad5980d293e86712496f134347b4
Author: Roland Scheidegger <sroland@vmware.com>
Date:   Sat Feb 14 16:34:04 2015 +0100

    mesa: don't enable NV_fragment_program_option with swrast
    
    Since dropping some NV_fragment_program opcodes (commits
    868f95f1da74cf6dd7468cba1b56664aad585ccb, a3688d686f147f4252d19b298ae26d4ac72c2e08)
    we can no longer parse all opcodes necessary for this extension, leading
    to bugs (https://bugs.freedesktop.org/show_bug.cgi?id=86980).
    Hence don't announce support for it in swrast (no other driver enabled it).
    (Note that remnants of some NV_fp/vp extensions remain, they could be
    dropped but are required as hacks for getting viewperf11 catia to run.)

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.