summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nv50
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-12/+18
| | | | | | | | | | | | | | | | | | | | | 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/ir: restore use of long immediate encodingsChristoph Bumiller2012-10-282-0/+9
| | | | NOTE: This is a candidate for the 9.0 branch.
* nv50,nvc0: fix 2d engine stencil-only copiesChristoph Bumiller2012-10-282-19/+44
|
* nv50/ir/tgsi: fix srcMask for TXP with SHADOW1DChristoph Bumiller2012-10-241-1/+1
|
* gallium: unify transfer functionsMarek Olšák2012-10-114-50/+32
| | | | | | | | | | | | | | "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]>
* nv50: fix build after "nv50: fix printf warning"Marcin Slusarz2012-10-091-0/+2
| | | | | When compiled with C++ compiler, inttypes.h defines PRI* macros only when __STDC_FORMAT_MACROS is defined.
* nouveau: use pre-calculated stride for resource_get_handleMarcin Slusarz2012-10-091-2/+1
| | | | | | Fixes FDO#55294. NOTE: This is a candidate for the 9.0 branch.
* nv50: fix printf warningMarek Olšák2012-10-091-1/+2
|
* nv50: point vertex runout at a valid addressBen Skeggs2012-10-091-0/+12
| | | | | Reviewed-by: Christoph Bumiller <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
* nv50,nvc0: fix 3d engine blit for nvc0Christoph Bumiller2012-09-301-1/+3
|
* nv50,nvc0: implement blitChristoph Bumiller2012-09-309-315/+855
|
* 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]>
* nv50/ir/ra: Fix register interference tracking.Jay Cornwall2012-09-251-4/+4
| | | | See fdo bug 55224.
* nvc0/ir: add initial code to support GK110 ISA encodingChristoph Bumiller2012-09-074-0/+32
|
* 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/ir/tgsi: handle DP2 in tgsi Instruction srcMaskChristoph Bumiller2012-08-181-0/+2
| | | | Solved by Tiziano Bacocco on IRC.
* nv50/ir/emit: don't forget saturation bit on f32 add immediateChristoph Bumiller2012-08-181-0/+2
| | | | Solved by Maxim Levitsky on IRC.
* nv50,nvc0: make resolve sampler objects allow sRGB conversionChristoph Bumiller2012-08-012-8/+15
| | | | | | | 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]>
* nv50: fix depth/stencil multisample memory storage typesChristoph Bumiller2012-07-281-6/+6
| | | | Leftover from libdrm_nouveau v2 interface change.
* nv50: fix resource_resolve shader start offsetsChristoph Bumiller2012-07-281-2/+2
|
* nv50/ir: set position before i instead of i->next in NV50LoweringPreSSA::visitBryan Cain2012-07-201-7/+2
| | | | | Fixes rendering glitches in Psychonauts such as Raz's eyes flickering white. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=51962.
* nouveau: implement missing timer query functionalityChristoph Bumiller2012-07-132-3/+10
|
* gallium: add QUERY_TIMESTAMP cap and get_timestamp screen functionMarek Olšák2012-07-101-0/+1
|
* nv50: dynamically allocate space for shader local storageMarcin Slusarz2012-06-286-25/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes 21 piglit tests: spec/glsl-1.10/execution/variable-indexing/ fs-temp-array-mat4-index-col-row-wr vs-temp-array-mat4-index-col-row-wr vs-temp-array-mat4-index-row-wr spec/glsl-1.20/execution/variable-indexing/ fs-temp-array-mat3-index-col-row-rd fs-temp-array-mat3-index-row-rd fs-temp-array-mat4-col-row-wr fs-temp-array-mat4-index-col-row-rd fs-temp-array-mat4-index-col-row-wr fs-temp-array-mat4-index-row-rd fs-temp-array-mat4-index-row-wr vs-temp-array-mat3-index-col-row-rd vs-temp-array-mat3-index-col-row-wr vs-temp-array-mat3-index-row-rd vs-temp-array-mat3-index-row-wr vs-temp-array-mat4-col-row-wr vs-temp-array-mat4-index-col-row-rd vs-temp-array-mat4-index-col-row-wr vs-temp-array-mat4-index-col-wr vs-temp-array-mat4-index-row-rd vs-temp-array-mat4-index-row-wr vs-temp-array-mat4-index-wr ... and prevents a lot of GPU lockups
* nv50: streamline screen_create error handlingMarcin Slusarz2012-06-281-38/+46
| | | | | Remove macro which changes control flow (it's evil). Make all fail paths print (correct) error message.
* nv50/ir: make colorful ir dump output optionalMarcin Slusarz2012-06-281-5/+17
|
* nv50: fix buffer reuse issuesMarcin Slusarz2012-06-202-0/+18
| | | | | | | | | | 1) We need to insert a barrier between consecutive transform feedback calls. 2) VBO cache needs to be flushed when TFB output is used as VBO draw input. Fixes Piglit test EXT_transform_feedback/immediate-reuse. Thanks to Christoph Bumiller for pointing out bugs in previous versions of this patch.
* 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"
* nv50: disable stream output before reconfiguring itChristoph Bumiller2012-06-141-2/+2
| | | | If we don't, the GPU will just throw an ILLEGAL_OPERATION error.
* nv50/ir: handle NEG,ABS modifiers for short RCP encodingChristoph Bumiller2012-06-141-0/+2
|
* 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
* nv50: fix nv50_stream_output_state leakMarcin Slusarz2012-06-051-0/+3
|
* nv50: fix symbol table memory leakMarcin Slusarz2012-06-051-0/+3
|
* nv50: hook up forgotten short constant buffer upload methodMarcin Slusarz2012-05-291-0/+1
| | | | Fixes crash in xorg st.
* nouveau: unreference fences on resource destructionChristoph Bumiller2012-05-291-0/+3
|
* nvc0/ir: allow 64-bit constant loads on nve4Christoph Bumiller2012-05-291-0/+2
| | | | Looks like only 128-bit access doesn't work.
* nvc0/ir: fix texture barrier insertion to prevent WAW hazardsChristoph Bumiller2012-05-294-8/+10
| | | | Fixes, for instance, object highlighting in Diablo 3 (wine).
* nvc0/ir: TEX doesn't support JOIN modifier eitherChristoph Bumiller2012-05-291-0/+1
|
* nv50: make unaligned index buffer offsets work againChristoph Bumiller2012-05-221-1/+3
| | | | Messed up in ef7bb281292c17b762b57779306e874704c87328.
* nouveau: place static buffers in VRAM if preferred by the driverChristoph Bumiller2012-05-171-2/+8
|
* nv50/ir: fix reversed order of lane ops in quadopsChristoph Bumiller2012-05-171-2/+3
|
* nv50,nvc0: handle user vertex buffersChristoph Bumiller2012-05-176-133/+152
| | | | And restructure VBO validation a little in the process.
* nv50,nvc0: handle user index buffersChristoph Bumiller2012-05-174-23/+25
|