summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nouveau/nouveau_buffer.c
AgeCommit message (Collapse)AuthorFilesLines
2014-05-02nouveau: add ARB_buffer_storage supportIlia Mirkin1-2/+10
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
2014-05-02nouveau: remove cb_dirty, it's never usedIlia Mirkin1-3/+1
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
2014-03-09nouveau: add valid range tracking to nouveau_bufferIlia Mirkin1-0/+31
This logic is borrowed from the radeon code. The transfer logic will only get called for PIPE_BUFFER resources, so it shouldn't be necessary to worry about them becoming render targets. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Christoph Bumiller <e0425955@student.tuwien.ac.at>
2014-02-06gallium: remove PIPE_USAGE_STATICMarek Olšák1-1/+0
Reviewed-by: Brian Paul <brianp@vmware.com>
2013-12-04nouveau: Add lots of comments to the buffer transfer logicIlia Mirkin1-2/+69
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
2013-12-04nv50: wait on the buf's fence before sticking it into pushbufIlia Mirkin1-0/+3
This resolves some rendering issues in source games. See https://bugs.freedesktop.org/show_bug.cgi?id=64323 Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Cc: "9.2 10.0" <mesa-stable@lists.freedesktop.org>
2013-09-01nouveau: initialise the nouveau_transfer mapsEmil Velikov1-0/+2
Cc: "9.2 and 9.1" <mesa-stable@lists.freedesktop.org> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2013-04-03nouveau: accelerate buffer copies in resource_copy_regionChristoph Bumiller1-0/+34
2013-04-03nvc0: add some driver statistics queriesChristoph Bumiller1-0/+30
2013-03-12nouveau: align PIPE_BIND_SHADER,COMPUTE_RESOURCEs to 256 bytesChristoph Bumiller1-1/+3
2013-01-27nouveau: don't try to use push_data if it's not implementedChristoph Bumiller1-0/+3
2013-01-08nouveau: improve buffer transfersChristoph Bumiller1-131/+268
Save double memcpy on uploads to VRAM in most cases. Properly handle FLUSH_EXPLICIT. Reallocate on DISCARD_WHOLE_RESOURCE to avoid sync.
2012-11-04nv50,nvc0: expose ARB_map_buffer_alignmentLucas Stach1-3/+3
All HW buffers (also suballocated ones) are already aligned. Just make sure that also the initial sysram buffers have proper alignment.
2012-10-14nouveau: fix offset in nouveau_buffer_transfer_mapChristoph Bumiller1-1/+1
Before 369e46888904c6d379b8b477d9242cff1608e30e, the transfer was initialized before the call to map and had the correct value already.
2012-10-11gallium: unify transfer functionsMarek Olšák1-56/+46
"get_transfer + transfer_map" becomes "transfer_map". "transfer_unmap + transfer_destroy" becomes "transfer_unmap". transfer_map must create and return the transfer object and transfer_unmap must destroy it. transfer_map is successful if the returned buffer pointer is not NULL. If transfer_map fails, the pointer to the transfer object remains unchanged (i.e. doesn't have to be NULL). Acked-by: Brian Paul <brianp@vmware.com>
2012-05-29nouveau: unreference fences on resource destructionChristoph Bumiller1-0/+3
2012-05-17nouveau: place static buffers in VRAM if preferred by the driverChristoph Bumiller1-4/+25
2012-05-17nv50,nvc0: handle user vertex buffersChristoph Bumiller1-11/+9
And restructure VBO validation a little in the process.
2012-05-11Merge branch 'gallium-userbuf'Marek Olšák1-1/+0
Conflicts: src/gallium/docs/source/screen.rst src/gallium/drivers/nv50/nv50_state.c src/gallium/include/pipe/p_defines.h src/mesa/state_tracker/st_draw.c
2012-05-06nouveau: fix nouveau_scratch_runout_release bo count underflowChristoph Bumiller1-1/+3
2012-04-30gallium: remove pipe_resource::user_ptrMarek Olšák1-1/+0
It's unused now.
2012-04-24gallium: add user_ptr in pipe_resourceMarek Olšák1-0/+1
I need to access the pointer in st/mesa when I only have pipe_resource.
2012-04-14nouveau: add new shared scratch buffersChristoph Bumiller1-0/+141
2012-04-14nv30: import new driver for GeForce FX/6/7 chipsets, and Quadro variantsBen Skeggs1-1/+1
The primary motivation for this rewrite was to have a maintainable driver going forward, as nvfx was quite horrible in a lot of ways. The driver is heavily based on the design of the nv50/nvc0 3d drivers we already have, and uses the same common buffer/fence code. It also passes a HEAP more piglit tests than nvfx did, supports a couple more features, and a few more to come still probably. The CPU footprint of this driver is far far less than nvfx, and translates into far greater framerates in a lot of applications (unless you're using a CPU that's way way newer than the GPUs of these generations....) Basically, we once again have a maintained driver for these chipsets \o/ Feel free to report bugs now!
2012-04-14nouveau: switch to libdrm_nouveau-2.0Christoph Bumiller1-37/+53
2012-04-14nouveau: remove automatic buffer migration heuristicsChristoph Bumiller1-5/+0
2012-03-05Revert "gallium: add flag PIPE_TRANSFER_MAP_PERMANENTLY"Marek Olšák1-7/+1
This reverts commit 0950086376b1c8b7fb89eda81ed7f2f06dee58bc. It was decided to refactor the transfer API instead of adding workarounds to address the performance issues.
2012-01-05gallium: add flag PIPE_TRANSFER_MAP_PERMANENTLYMarek Olšák1-1/+7
Please see the diff for further info. This paves the way for moving user buffer uploads out of drivers and should allow to clean up the mess in u_upload_mgr in the meantime. For now only allowed for buffers on r300 and r600. Acked-by: Christian König <deathsimple@vodafone.de>
2011-10-21nouveau,nvc0: fix/improve handling of multiple constant buffersChristoph Bumiller1-4/+13
2011-10-09nouveau: hide some debugging messages behind environment variableMarcin Slusarz1-1/+2
They spam console, but are not very useful - hide them behind NOUVEAU_MESA_DEBUG environment variable.
2011-03-11gallium: kill is_resource_referencedMarek Olšák1-1/+0
Only st/xorg used it and even incorrectly with regards to pipelined transfers.
2011-03-03nouveau: allow pipe driver to define which buffers should start in sysmemBen Skeggs1-1/+1
PIPE_BIND_CONSTANT_BUFFER alone was OK for nv50/nvc0, but nv30 will need to be able to set others on certain chipsets. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-03-01nouveau: ensure vbo_dirty is set when buffer write transfer completeBen Skeggs1-24/+23
This introduces a shared nouveau_context struct to track such things. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-03-01nv50: sync textures with render targets ourselvesBen Skeggs1-3/+3
Port of the nvc0 commit doing the same. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-03-01nouveau: common linear buffer manager, ported from nv50/nvc0 driversBen Skeggs1-0/+489
nv50_resource is being called nv04_resource now temporarily, to avoid a naming conflict with nouveau_resource from libdrm. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>