swzsurf doesn't support GART
Thanks to Marcin Kościelnicki <koriakin@0x04.net> for spotting that !
This fixes corruption in etracer and the following related errors :
[14381.551927] [drm] nouveau 0000:01:00.0: PGRAPH_ERROR - nSource:
PROTECTION_ERROR, nStatus: INVALID_STATE
[14381.551945] [drm] nouveau 0000:01:00.0: PGRAPH_ERROR - Ch 2/2 Class
0x039e Mthd 0x0184 Data 0x00001cd9:0x00001cd9
Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
Adapted by Luca Barbieri for mesa master.
nouveau: replace vtxbuf/idxbuf caps with BO_ flags in nouveau_screen and fix uncached reads on nv3x
Faster, simpler and more flexible.
Also, we set those flags properly on nv3x so that we don't allocate buffers in GART.
Since on AGP GART is uncached, OpenGL doesn't distinguish between vertex and index buffers, and we don't support hardware index buffers for now, this caused uncached reads.
Also check bind and not usage for PIPE_BIND_* flags, got broken in the gallium-resources transition.
texdepth stopped working when npot went in, this brings it back
to life.
< MostAwesomeDude> That looks like what I was going to do.
Signed-off-by: Dave Airlie <airlied@redhat.com>
DRI2: report swap events correctly in direct rendered case
In the direct rendered case, we need to convert DRI2 swap complete
events to GLX events for the client to consume. This path had what
looks like a stray "& 0x75" from some earlier debugging that prevented
clients from seeing the right event code.
nvfx: use dynamically sized rotating BO pool for fragment programs
Currently we used a single buffer for each fragment programs, leading to
rendering synchronization. This patch uses a doubly linked list of BOs,
which is dynamically resized if all the BOs are busy.
Note that inline image transfers could be an alternative option: this
will be explored later.
This removes one of the big performance limitations of the current
driver.
We also stop using pipe_resource internally in favor of using nouveau_bo
directly.