summaryrefslogtreecommitdiffstats
path: root/src/mesa
Commit message (Collapse)AuthorAgeFilesLines
* i915: Suppress emission of redundant stencil updatesChris Wilson2011-02-211-45/+55
| | | | Signed-off-by: Chris Wilson <[email protected]>
* i915: Separate BLEND from general context state.Chris Wilson2011-02-213-22/+40
| | | | Signed-off-by: Chris Wilson <[email protected]>
* i915: Only flag context changes if the actual state is changedChris Wilson2011-02-211-49/+105
| | | | Signed-off-by: Chris Wilson <[email protected]>
* i915: suppress repeated sampler state emissionChris Wilson2011-02-212-0/+11
| | | | Signed-off-by: Chris Wilson <[email protected]>
* i915: Eliminate redundant CONSTANTS updatesChris Wilson2011-02-211-25/+26
| | | | Signed-off-by: Chris Wilson <[email protected]>
* i965: Use compiler builtins when availableChris Wilson2011-02-214-20/+25
| | | | Signed-off-by: Chris Wilson <[email protected]>
* i965: Micro-optimise check_stateChris Wilson2011-02-211-7/+5
| | | | | | | Replace the intermediate tests due to the logical or with the bitwise or. Signed-off-by: Chris Wilson <[email protected]>
* intel: use throttle ioctl for throttlingChris Wilson2011-02-213-13/+3
| | | | | | | | | | Rather than waiting on the first batch after the last swapbuffers to be retired, call into the kernel to wait upon the retirement of any request less than 20ms old. This has the twofold advantage of (a) not blocking any other clients from utilizing the device whilst we wait and (b) we attain higher throughput without overloading the system. Signed-off-by: Chris Wilson <[email protected]>
* i965: Remove unused 'next_free_page' memberChris Wilson2011-02-211-5/+0
| | | | Signed-off-by: Chris Wilson <[email protected]>
* intel: Skip the flush before read-pixels via blitChris Wilson2011-02-211-4/+7
| | | | | | | As we will flush when reading the return values of the blit, we can forgo the earlier flush. Signed-off-by: Chris Wilson <[email protected]>
* intel: extend current vertex buffersChris Wilson2011-02-215-23/+73
| | | | | | | | | If the next vertex arrays are a (discontiguous) continuation of the current arrays, such that the new vertices are simply offset from the start of the current vertex buffer definitions we can reuse those defintions and avoid the overhead of relocations and invalidations. Signed-off-by: Chris Wilson <[email protected]>
* intel: Use specified alignment for writes into the upload bufferChris Wilson2011-02-213-30/+57
| | | | Signed-off-by: Chris Wilson <[email protected]>
* i965: Clean up brw_prepare_vertices()Chris Wilson2011-02-211-21/+20
| | | | | | Use a temporary glarray variable to replace the numerous input->glarray. Signed-off-by: Chris Wilson <[email protected]>
* intel: combine short memcpy using a temporary allocated bufferChris Wilson2011-02-213-38/+27
| | | | | | | | Using a temporary buffer for large discontiguous uploads into the common buffer and a single buffered upload is faster than performing the discontiguous copies through a mapping into the GTT. Signed-off-by: Chris Wilson <[email protected]>
* i965: upload normal arrays as interleavedChris Wilson2011-02-211-30/+72
| | | | | | | Upload the non-vbo arrays into a single interleaved buffer object, and so need to just emit a single vertex buffer relocation. Signed-off-by: Chris Wilson <[email protected]>
* i965: interleaved vboChris Wilson2011-02-211-12/+27
| | | | | | | If the user passed in several arrays interleaved in the same vbo, only emit a single vertex buffer and relocation. Signed-off-by: Chris Wilson <[email protected]>
* i965: emit one vb packet per vboChris Wilson2011-02-213-77/+83
| | | | | | | Track reuse of the vertex buffer objects and so minimise the number of vertex buffers used by the hardware (and their relocations). Signed-off-by: Chris Wilson <[email protected]>
* i965: upload transient indices into the same discontiguous bufferChris Wilson2011-02-212-13/+8
| | | | | | | | As we now pack the indices into a common upload buffer, we can reuse a single CMD_INDEX_BUFFER packet and translate each invocation with a start vertex offset. Signed-off-by: Chris Wilson <[email protected]>
* i965: suppress repeat-emission of identical vertex elementsChris Wilson2011-02-211-3/+2
| | | | Signed-off-by: Chris Wilson <[email protected]>
* i965: Move repeat-instruction-suppression to batchbuffer coreChris Wilson2011-02-219-152/+120
| | | | | | | | Move the tracking of the last emitted instructions into the core batchbuffer routines and take advantage of the shadow batch copy to avoid extra memory allocations and copies. Signed-off-by: Chris Wilson <[email protected]>
* intel: use pwrite for batchChris Wilson2011-02-2127-302/+219
| | | | | | | | | | | It's faster. Not only is the memcpy more efficiently performed in the kernel (making up for the system call overhead), but by not using mmap we remove the greater overhead of tracking the vma of every batch. And it means we can read back from the batch buffer without incurring the cost of a uncached read through the GTT. Signed-off-by: Chris Wilson <[email protected]>
* i965: drop state_bo references to batch_boChris Wilson2011-02-219-105/+74
| | | | | | | As we use state relocations and we know that all the state belongs to the same bo, we can drop the multiple references to the same bo. Signed-off-by: Chris Wilson <[email protected]>
* i965: directly write wm state to batchChris Wilson2011-02-211-63/+48
| | | | | | | As we write directly into the batch in system memory, we do not need to write first to the stack (as was to avoid read back through the GTT) Signed-off-by: Chris Wilson <[email protected]>
* i965: write cc straight to batchChris Wilson2011-02-211-48/+46
| | | | | | | As we write directly into the batch in system memory, we do not need to write first to the stack (as was to avoid read back through the GTT) Signed-off-by: Chris Wilson <[email protected]>
* i965: switch gen6 to use its own cc state boChris Wilson2011-02-211-6/+6
| | | | | | | In preparation for a greater change, use the color_calc_state_bo already provisioned for this purpose. Signed-off-by: Chris Wilson <[email protected]>
* intel: Buffered uploadChris Wilson2011-02-215-17/+82
| | | | | | | | | Rather than performing lots of little writes to update the common bo upon each update, write those into a static buffer and flush that when full (or at the end of the batch). Doing so gives a dramatic performance improvement over and above using mmaped access. Signed-off-by: Chris Wilson <[email protected]>
* intel: Replace the bo for a complete updateChris Wilson2011-02-211-6/+13
| | | | | | | Rather than performing a blit to completely overwrite a busy bo, simply discard it and create a new one with the fresh data. Signed-off-by: Chris Wilson <[email protected]>
* i965: Combine vb upload buffer with the general upload bufferChris Wilson2011-02-216-97/+71
| | | | | | | Reuse the new common upload buffer for uploading temporary indices and rebuilt vertex arrays. Signed-off-by: Chris Wilson <[email protected]>
* intel: Pack dynamic draws togetherChris Wilson2011-02-217-20/+88
| | | | | | | | Dynamic arrays have the tendency to be small and so allocating a bo for each one is overkill and we can exploit many efficiency gains by packing them together. Signed-off-by: Chris Wilson <[email protected]>
* intel: Use system memory for DYNAMIC_DRAW source objectsChris Wilson2011-02-211-20/+31
| | | | | | | | | | | | Dynamic draw buffers are used by clients for temporary arrays and for uploading normal vertex arrays. By keeping the data in memory, we can avoid reusing active buffer objects and reallocate them as they are changed. This is important for Sandybridge which can not issue blits within a batch and so ends up flushing the batch upon every update, that is each batch only contains a single draw operation (if using dynamic arrays or regular arrays from system memory). Signed-off-by: Chris Wilson <[email protected]>
* i965: Trim the trailing NOOP from 3DSTATE_INDEX_BUFFERChris Wilson2011-02-211-23/+12
| | | | Signed-off-by: Chris Wilson <[email protected]>
* i965: Fallback on encountering a NULL render bufferChris Wilson2011-02-211-0/+5
| | | | | | | | Following a GPU hang, or other error, the render target is not likely to have an allocated BO and so we must fallback to avoid using it. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32534 Signed-off-by: Chris Wilson <[email protected]>
* vbo: add debug code to verify that buffers are unmapped before drawingBrian Paul2011-02-181-0/+25
|
* mesa: MESA_VERBOSE logging for glRead/Draw/CopyPixels, glBlitFramebufferBrian Paul2011-02-183-0/+38
|
* st/mesa: set renderbuffer _BaseFormat in a few placesBrian Paul2011-02-181-0/+2
| | | | NOTE: This is a candidate for the 7.9 and 7.10 branches
* st/mesa: check buffer orientation in blit_copy_pixels()Brian Paul2011-02-181-3/+4
| | | | | Can't invert the region if copying between surfaces with different orientations.
* st/mesa: fix geometry corruption by always re-binding vertex arraysMarek Olšák2011-02-181-1/+3
| | | | | | | | | | | This is a temporary workaround. It fixes sauerbrauten with shaders enabled. I guess we might be changing vertex attribs somewhere and not updating the appropriate dirty flags, therefore we can't rely on them for now. Or maybe we need to make this state dependent on some other flags too. More info: https://bugs.freedesktop.org/show_bug.cgi?id=34378
* Point to bugs.freedesktop.org rather than bugzilla.freedesktop.orgCyril Brulebois2011-02-181-1/+1
| | | | | | Suggested by a freedesktop.org admin. Signed-off-by: Cyril Brulebois <[email protected]>
* st/mesa: implement blit-based path for glCopyPixelsBrian Paul2011-02-171-0/+114
| | | | | If doing a simple non-overlapping glCopyPixels with no per-fragment ops we can use pipe_context::resource_copy_region().
* mesa: fix comments for _mesa_clip_readpixels()Brian Paul2011-02-171-2/+2
|
* st/mesa: indentation fixBrian Paul2011-02-171-1/+1
|
* st/mesa: fix incorrect glCopyPixels position on fallback pathBrian Paul2011-02-171-3/+4
| | | | | | | | | If we hit the pipe_get/put_tile() path for setting up the glCopyPixels texture we were passing the wrong x/y position to pipe_get_tile(). The x/y position was already accounted for in the pipe_get_transfer() call so we were effectively reading from 2*readX, 2*readY. NOTE: This is a candidate for the 7.9 and 7.10 branches.
* mesa: Do copy propagation across if-else-endif.José Fonseca2011-02-171-2/+28
| | | | | | | | Addresses excessive TEMP allocation in vertex shaders where all CONSTs are stored into TEMPS at the start, but copy propagation was failing due to the presence of IFs. We could do something about loops, but ifs are easy enough.
* st/mesa: remove unused screen variablesBrian Paul2011-02-171-2/+0
|
* mesa: remove the MESA_NO_DITHER env varBrian Paul2011-02-173-16/+0
| | | | This was sometimes useful back when 16-bit framebuffers were prominent.
* mesa: make _mesa_write_renderbuffer_image() non-staticBrian Paul2011-02-162-3/+14
|
* mesa: 80-column wrapBrian Paul2011-02-161-2/+2
|
* mesa: fix texture3D mipmap generation for UNSIGNED_BYTE_3_3_2 and 4_4Marek Olšák2011-02-161-2/+2
| | | | | | | Oops, I copy-pasted a typo from 3_3_2. The 3_3_2 part is a candidate for 7.9 and 7.10. The 4_4 part isn't, because AL44 is in neither branches.
* mesa: fix mipmap generation for MESA_FORMAT_AL44Marek Olšák2011-02-164-1/+61
| | | | This was missed when implementing AL44.
* mesa: Remove the DXT compression via blit path.José Fonseca2011-02-162-157/+1
| | | | No longer used.