[Nouveau] nvfx

Luca Barbieri luca at luca-barbieri.com
Sat Jul 24 06:34:06 PDT 2010


On Fri, Jul 23, 2010 at 7:01 PM, Patrice Mandin
<mandin.patrice at orange.fr> wrote:
> Le Fri, 18 Jun 2010 18:43:27 +0200
> Marek Olšák <maraeo at gmail.com> a écrit:
>
>> On Fri, Jun 18, 2010 at 6:05 PM, Patrice Mandin <mandin.patrice at orange.fr>wrote:
>>
>> > Le Thu, 17 Jun 2010 03:35:19 +0200
>> > Marek Olšák <maraeo at gmail.com> a écrit:
>> >
>> > > On Fri, Jun 11, 2010 at 3:37 PM, Xavier Chantry <
>> > chantry.xavier at gmail.com>wrote:
>> > >
>> > > > Hi Marek
>> > > >
>> > > > Thanks a lot for your rebasing work.
>> > > > Here is my report :
>> > > >
>> > > > - all my games that broke with temporaries patch (they were either
>> > > > completely black or lot of black screen flash every frame) behave
>> > > > badly, but in different ways :
>> > > > * etracer is very slow and often crash in ttm code [1] (I think this
>> > > > is an old bug that just resurrected, no idea why)
>> > > > * foobillard is very slow and still flash a bit
>> > > > * strangely, neverball seems to work, I get similar results than with
>> > > > old nvfx-next-6b branch with temporaries reverted. no black flash
>> > > > while playing.
>> > > > * glest segfault [2]
>> > > >
>> > > > I also compared with piglit the old nvfx branch with the new merged one
>> > :
>> > > > 114/174 vs 113/174
>> > > > That looks quite good with 3 new pass, but 4 new fail :
>> > > > * fbo-copypix
>> > > > Returncode was -6
>> > > > * glean pbo
>> > > >
>> > ../../../../src/gallium/auxiliary/util/u_inlines.h:77:pipe_reference:
>> > > > Assertion `pipe_is_referenced(reference)\\\' failed.
>> > > > * texCombine4:  FAIL rgba8, db, z24, s8, win+pmap, id 33
>> > > > * fp-long-alu
>> > > >
>> > >
>> > > Hi Xavier,
>> > >
>> > > Sorry for the late reply.
>> > >
>> > > The assertion in pipe_reference can be fixed quite easily I think. There
>> > is
>> > > pipe_*_reference missing somewhere.
>> > >
>> > > Concerning fp-long-alu, there are new CAPs for shader limits which should
>> > be
>> > > filled out but I don't know what values to put there. If the two get
>> > fixed,
>> > > it will hopefully be just 2 new failures along with 3 that pass.
>> > >
>> > >
>> > > > There is just fp-long-alu that is for sure a regression caused by new
>> > > > master code (some gallium changes). I don't know about the 3 others.
>> > > >
>> > > > It might be worth to re-test everything on your new branch with this
>> > > > patch reverted :
>> > > > nvfx: rewrite render temporaries code, also affecting 2D and resource
>> > code
>> > > >
>> > >
>> > > Here is the tree with the commit reverted:
>> > >
>> > > git://anongit.freedesktop.org/~mareko/mesa<http://anongit.freedesktop.org/%7Emareko/mesa>nvfx-next-6b-notemps
>> > >
>> > > It is compile-tested so if it does not work, there is nothing I can do
>> > about
>> > > it.
>> > >
>> > > -Marek
>> >
>> > I just tested the new tree nvfx-next-6b-notemps, I think we should go
>> > some commits before, because Luca removed the check in fbo setting
>> > between difference in bits between colour and depth/stencil buffer, and
>> > nv30 hw does not support that (they must be equal) and doing that
>> > simply hang the gpu.
>> >
>> > Commit 4787059263755fb92b2bb09ac71658d9b4cc9368 'nvfx: new 2D: add
>> > support for render temporaries' removed this check and fbo tests
>> > trigger the bug. Maybe Luca was planning to use temporaries to avoid
>> > this check, but unfortunately we do not know if he finished it or not.
>>
>> I do not want to guess here. I would like to hear something from Luca before
>> doing anything else with his code.
>
> It has been 3 months since latest Luca's sign, and I'm afraid it will
> be a while before it changes :-(.
>
> Marek, if you are still interested in merging stuff from nvfx-next-6b,
> I would like to propose up to commit
> 9a4c66b0d1963c4d90fccac41e7aa48105835857 included (as I said before,
> the following ones bring back nasty regression regarding fbo stuff,
> hanging the gpu hard).
>
> Luca did many fixes in his branch so it's really bad these ones are not
> merged back to master. Also, I don't feel like touching the nvfx
> backend in master till these fixes are merged.

I got busy with other things and then essentially lost interest;
furthermore, my nv40 is not even working right now.

As for the code, sure, feel free to make it work and merge it :)
The new temporary code did indeed screw things up, and I think it also
had other stuff mixed in that I didn't factor out.
However, the old temporary code is wrong because the temporary is
per-surface, while it should be attached to the resource, so that
multiple surfaces, and direct use of the resource itself, works
properly.

nv40 should support having mismatching color/depth as long as both are
linear and not swizzled.
I'm not sure if that is the case on nv30 or if there the restriction
applies to both cases.

There are also two branches starting with "RFC" in mesa git that add
correct nv30 ARB_texture_rectangle and correct glsl support, which
require minor Gallium changes but for which IIRC I never got answers
back from Gallium maintainers.

There should also be code in other branches to add control flow for
nv40 fragment programs (and perhaps other features I don't remember
right now).


More information about the Nouveau mailing list