summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nvc0
Commit message (Collapse)AuthorAgeFilesLines
* nv50,nvc0: expose ARB_map_buffer_alignmentLucas Stach2012-11-041-1/+2
| | | | | | All HW buffers (also suballocated ones) are already aligned. Just make sure that also the initial sysram buffers have proper alignment.
* gallium: expose ARB_map_buffer_alignment on RadeonMarek Olšák2012-10-311-0/+1
| | | | | | | | Reviewed-by: Brian Paul <[email protected]> v2: update relnotes-9.1 v3: use align_malloc and align_free for malloced buffers in r300g v4: document the new CAP in the docs
* gallium: add start_slot parameter to set_vertex_buffersMarek Olšák2012-10-311-44/+24
| | | | | | | | | | | | | | | | | | | | | This allows updating only a subrange of buffer bindings. set_vertex_buffers(pipe, start_slot, count, NULL) unbinds buffers in that range. Binding NULL resources unbinds buffers too (both buffer and user_buffer must be NULL). The meta ops are adapted to only save, change, and restore the single slot they use. The cso_context can save and restore only one vertex buffer slot. The clients can query which one it is using cso_get_aux_vertex_buffer_slot. It's currently set to 0. (the Draw module breaks if it's set to non-zero) It should decrease the CPU overhead when using a lot of meta ops, but the drivers must be able to treat each vertex buffer slot as a separate state (only r600g does so at the moment). I can imagine this also being useful for optimizing some OpenGL use cases. Reviewed-by: Brian Paul <[email protected]>
* nv50,nvc0: fix 2d engine stencil-only copiesChristoph Bumiller2012-10-282-3/+4
|
* gallium: unify transfer functionsMarek Olšák2012-10-114-49/+33
| | | | | | | | | | | | | | "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 <[email protected]>
* nvc0: point vertex runout at a valid addressBen Skeggs2012-10-091-5/+16
| | | | | Reviewed-by: Christoph Bumiller <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
* nvc0: fix missing permanent bo reference on poly cacheBen Skeggs2012-10-091-0/+1
| | | | | Reviewed-by: Christoph Bumiller <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
* nvc0: make sure handles for unbound textures/samplers are uploaded on nve4Christoph Bumiller2012-09-302-2/+8
|
* nv50,nvc0: fix 3d engine blit for nvc0Christoph Bumiller2012-09-301-3/+6
|
* nv50,nvc0: implement blitChristoph Bumiller2012-09-307-400/+543
|
* gallium: remove resource_resolveMarek Olšák2012-09-301-1/+2
| | | | | | | The functionality is provided by the new blit function. Tested-by: Michel Dänzer <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* gallium: add PIPE_CAP_TEXTURE_MULTISAMPLEMarek Olšák2012-09-301-0/+1
| | | | | Tested-by: Michel Dänzer <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* nvc0/ir: add initial code to support GK110 ISA encodingChristoph Bumiller2012-09-076-13/+1659
|
* Remove useless checks for NULL before freeingMatt Turner2012-09-052-12/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Same as earlier commit, except for "FREE" This patch has been generated by the following Coccinelle semantic patch: // Remove useless checks for NULL before freeing // // free (NULL) is a no-op, so there is no need to avoid it @@ expression E; @@ + FREE (E); + E = NULL; - if (unlikely (E != NULL)) { - FREE(E); ( - E = NULL; | - E = 0; ) ... - } @@ expression E; type T; @@ + FREE ((T) E); + E = NULL; - if (unlikely (E != NULL)) { - FREE((T) E); ( - E = NULL; | - E = 0; ) ... - } @@ expression E; @@ + FREE (E); - if (unlikely (E != NULL)) { - FREE (E); - } @@ expression E; type T; @@ + FREE ((T) E); - if (unlikely (E != NULL)) { - FREE ((T) E); - } Reviewed-by: Brian Paul <[email protected]>
* nv50,nvc0: make resolve sampler objects allow sRGB conversionChristoph Bumiller2012-08-011-4/+10
| | | | | | | Just figured out what that bit does. Note: It's converted back to sRGB on write, so no effective conversion occurs.
* Revert "gallium: specify resource_resolve destination via a pipe_surface"Christoph Bumiller2012-08-011-13/+19
| | | | | | | | | | | This reverts commit 5d5af7d359e0060fa00b90a8f04900b96f9058b0. It turns out the issue this was supposed to fix merely counter-acted a bug in the hardware driver that I wasn't aware of. The resource_resolve is not supposed to do sRGB conversion, period. (This would violate the requirement that source and destination must be of the same format).
* gallium: specify resource_resolve destination via a pipe_surfaceChristoph Bumiller2012-07-281-19/+13
| | | | | | | | | | | The format member of pipe_surface may differ from that of the pipe_resource, which is used to communicate, for instance, whether sRGB encode should be enabled in the resolve operation or not. Fixes resolve to sRGB surfaces in mesa/st when GL_FRAMEBUFFER_SRGB is disabled. Reviewed-by: Brian Paul <[email protected]>
* nouveau: implement missing timer query functionalityChristoph Bumiller2012-07-131-1/+1
|
* gallium: add QUERY_TIMESTAMP cap and get_timestamp screen functionMarek Olšák2012-07-101-0/+1
|
* gallium: Add PIPE_CAP_START_INSTANCEFredrik Höglund2012-06-191-0/+1
| | | | Reviewed-by: Brian Paul <[email protected]>
* nv50,nvc0: fix stream output target buffer leakMarcin Slusarz2012-06-141-0/+1
| | | | | It manifests at exit as: "WARNING: destroying GPU memory cache with some buffers still in use"
* automake: Globally add stub automake targets to the old Makefiles.Eric Anholt2012-06-111-3/+0
| | | | | | | | | I tried to update all the old Makefiles that included the default config to be sure they had a default target if they didn't previously have one, since this new all target will always point at it. Almost everything had one. Reviewed-by: Kenneth Graunke <[email protected]>
* nouveau: fix scratch buffer leakMarcin Slusarz2012-06-051-1/+1
| | | | ...and create common function for destroying nouveau_context
* nvc0: optimize blend cso by checking which by-RT data actually differsChristoph Bumiller2012-05-291-65/+94
| | | | Can save about 200 bytes of command buffer space.
* nvc0: don't upload UCPs if the shader doesn't use themChristoph Bumiller2012-05-291-1/+1
|
* nvc0/ir: allow 64-bit constant loads on nve4Christoph Bumiller2012-05-291-1/+1
| | | | Looks like only 128-bit access doesn't work.
* nvc0/ir: fix texture barrier insertion to prevent WAW hazardsChristoph Bumiller2012-05-292-21/+78
| | | | Fixes, for instance, object highlighting in Diablo 3 (wine).
* nvc0: don't set NEW_IDXBUF in nvc0_switch_pipe_context if none is boundChristoph Bumiller2012-05-221-0/+2
|
* nouveau: place static buffers in VRAM if preferred by the driverChristoph Bumiller2012-05-171-2/+5
|
* nv50/ir: fix reversed order of lane ops in quadopsChristoph Bumiller2012-05-171-2/+3
|
* nv50,nvc0: handle user vertex buffersChristoph Bumiller2012-05-176-160/+257
| | | | And restructure VBO validation a little in the process.
* nv50,nvc0: handle user index buffersChristoph Bumiller2012-05-174-24/+24
|
* nv50,nvc0: handle user constbufs without wrapping them in a resourceChristoph Bumiller2012-05-177-82/+91
|
* gallium: remove user_buffer_create from the interfaceMarek Olšák2012-05-121-1/+0
| | | | Nothing uses it now.
* Merge branch 'gallium-userbuf'Marek Olšák2012-05-112-4/+17
|\ | | | | | | | | | | | | | | 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
| * gallium: add void *user_buffer to pipe_constant_bufferMarek Olšák2012-04-301-0/+10
| | | | | | | | This reduces CPU overhead when updating constants.
| * gallium: add void *user_buffer in pipe_index_bufferMarek Olšák2012-04-301-1/+1
| | | | | | | | | | | | | | Adapted drivers: i915, llvmpipe, r300, r600, radeonsi, softpipe. User index buffers have been disabled in nv30, nv50, nvc0 and svga to keep things working.
| * gallium: remove pipe_context::redefine_user_bufferMarek Olšák2012-04-301-2/+0
| |
| * gallium: add void *user_buffer in pipe_vertex_bufferMarek Olšák2012-04-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This reduces CPU overhead in st_draw_vbo and removes a lot of unnecessary code in that function which was required only to comply with the gallium interface, but wasn't any useful really. Adapted drivers: i915, llvmpipe, r300, softpipe. No changes required in: r600, radeonsi. User vertex buffers have been disabled in nv30, nv50, nvc0 and svga to keep things working.
| * gallium: change set_constant_buffer to be UBO-friendlyMarek Olšák2012-04-301-1/+2
| |
| * gallium: add PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENTMarek Olšák2012-04-301-0/+2
| | | | | | | | | | | | | | | | This is required for any serious constant buffer support. Constant buffer offsets on ATI and NVIDIA DX10 and DX11 GPUs must be a multiple of 256. In OpenGL, this can be queried via GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT.
| * gallium: add PIPE_CAP_USER_INDEX_BUFFERS and PIPE_CAP_USER_CONSTANT_BUFFERSMarek Olšák2012-04-301-0/+2
| |
* | nvc0/ir: allow abs,neg source modifiers with ceil,floor,truncChristoph Bumiller2012-05-061-0/+3
| |
* | nvc0/ir: fix lowering of textureGradChristoph Bumiller2012-05-062-8/+9
|/
* nv50,nvc0: fix depth/stencil resolveChristoph Bumiller2012-04-291-30/+141
| | | | | Cannot sample depth/stencil with a single view, and needed to use different shader code for nve4.
* nv50/ir/opt: try to convert ABS(SUB) to SADChristoph Bumiller2012-04-292-1/+17
|
* nvc0/ir: try to use the optimal texture op modeChristoph Bumiller2012-04-291-3/+15
| | | | | Don't really know what they are yet but for groups of textures, the last one should use mode "p" and the others "t".
* nvc0/ir: initial implementation of nve4 scheduling hintsChristoph Bumiller2012-04-293-11/+597
|
* nvc0/ir: implement better placement of texture barriersChristoph Bumiller2012-04-291-7/+269
| | | | | Put them before first uses instead of right after the texturing instruction and cull unnecessary barriers.
* nvc0/ir/emit: fix emitTXQ 2nd srcChristoph Bumiller2012-04-291-1/+3
|