summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-02-21intel: Skip the flush before read-pixels via blitChris Wilson
As we will flush when reading the return values of the blit, we can forgo the earlier flush. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-21intel: extend current vertex buffersChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21intel: Use specified alignment for writes into the upload bufferChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-21i965: Clean up brw_prepare_vertices()Chris Wilson
Use a temporary glarray variable to replace the numerous input->glarray. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-21intel: combine short memcpy using a temporary allocated bufferChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21i965: upload normal arrays as interleavedChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21i965: interleaved vboChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21i965: emit one vb packet per vboChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21i965: upload transient indices into the same discontiguous bufferChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21i965: suppress repeat-emission of identical vertex elementsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-21i965: Move repeat-instruction-suppression to batchbuffer coreChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21intel: use pwrite for batchChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21i965: drop state_bo references to batch_boChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21i965: directly write wm state to batchChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21i965: write cc straight to batchChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21i965: switch gen6 to use its own cc state boChris Wilson
In preparation for a greater change, use the color_calc_state_bo already provisioned for this purpose. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-21intel: Buffered uploadChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21intel: Replace the bo for a complete updateChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21i965: Combine vb upload buffer with the general upload bufferChris Wilson
Reuse the new common upload buffer for uploading temporary indices and rebuilt vertex arrays. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-21intel: Pack dynamic draws togetherChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21intel: Use system memory for DYNAMIC_DRAW source objectsChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-21i965: Trim the trailing NOOP from 3DSTATE_INDEX_BUFFERChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-21i965: Fallback on encountering a NULL render bufferChris Wilson
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 <chris@chris-wilson.co.uk>
2011-02-20i915g: s/__func__/__FUNCTION__/Vinson Lee
2011-02-21i915g: kill remnants of mmapped batchbuffer supportDaniel Vetter
We're using bo_subdata. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-02-21i915g: Add winsys/i915/sw to scons buildJakob Bornecrantz
2011-02-21i915g: Fix void ptr arithJakob Bornecrantz
2011-02-21i915g: Add dummy flush_frontbufferJakob Bornecrantz
2011-02-20Fix --enable-shared-glapi configure optionJon TURNEY
Fix a typo which meant that --enable-shared-glapi didn't actually cause a shared glapi to be built Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2011-02-20egl_dri2: Return NULL when xcb_get_geometry_reply fails.Chia-I Wu
This should fix bug #33946.
2011-02-19scons: Add aliases for the llvmpipe unit tests.José Fonseca
Now one can simply do scons lp_test_format
2011-02-19gallivm: Use simple scaling plus casting in more unorm->float cases.José Fonseca
2011-02-19glsl: Remove $(PWD) from Makefile in favor of .Kenneth Graunke
Hopefully should fix bug #34468.
2011-02-19r300g: fix a possible race when counting contextsMarek Olšák
Atomics aren't sufficient here.
2011-02-19r300g: fix invalid dereference in winsysMarek Olšák
radeon_bo_unref may destroy the buffer, so call it after p_atomic_dec, not before.
2011-02-18svga: Fix NULL dereference.José Fonseca
Probably introduced with the surface view move from screen to context.
2011-02-18vbo: add debug code to verify that buffers are unmapped before drawingBrian Paul
2011-02-18mesa: MESA_VERBOSE logging for glRead/Draw/CopyPixels, glBlitFramebufferBrian Paul
2011-02-18st/mesa: set renderbuffer _BaseFormat in a few placesBrian Paul
NOTE: This is a candidate for the 7.9 and 7.10 branches
2011-02-18st/mesa: check buffer orientation in blit_copy_pixels()Brian Paul
Can't invert the region if copying between surfaces with different orientations.
2011-02-18svga: Ensure pending drawing commands other surface operations are emitted ↵José Fonseca
before DMAs. This behavior was last when moving the transfers to the contexts. This fixes several piglit failures, which were reading the color renderbuffer before the draw operations were emitted.
2011-02-18svga: Cannot use negate or abs on source to dsx/dsy instructions.José Fonseca
2011-02-18svga: Ensure SWTNL is created after HWTNL.José Fonseca
Matches the internal driver layering, and prevents null svga->hwtnl dereferencing from inside the swtnl.
2011-02-18svga: Ensure LRP's restrictions are observed in all uses.José Fonseca
The dst reg must be a temporary, and not be the same as src0 or src2.
2011-02-18svga: Preserve src swizzles in submit_op2/3/4.José Fonseca
Several opcodes require scalar swizzle, and this requirement was being was not being observed when creating temporaries for other reasons.
2011-02-18r300g: remove tracking whether vertex buffers need to be validatedMarek Olšák
This was getting hard to maintain and didn't really bring any real benefits. Instead, validate buffers when the vertex array state is dirty.
2011-02-18st/mesa: fix geometry corruption by always re-binding vertex arraysMarek Olšák
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
2011-02-18svga: Disable surface cache for texturesJakob Bornecrantz
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
2011-02-18svga: Describe svga_sampler_views for refcnt debuggingJakob Bornecrantz
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
2011-02-18svga: Make sure that refcnt debugger gets the correct backtrace for createJakob Bornecrantz
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>