Mesa (master): 33 new commits
Chris Wilson
ickle at kemper.freedesktop.org
Mon Feb 21 13:06:04 UTC 2011
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2c6793fb6bc89df16c23f727bcb072a157ab8d10
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Nov 25 15:41:37 2010 +0000
i915: Emit a single relocation per vbo
Reducing the number of relocations has lots of nice knock-on effects,
not least including reducing batch buffer size, auxilliary array sizes
(vmalloced and copied into the kernel), processing of uncached
relocations etc.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=298ebb78de8a6b6edf0aa0fe8d784d00bbc2930e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Nov 26 11:18:50 2010 +0000
i915: Suppress emission of redundant stencil updates
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7c97e288fb6a105ea60c377aef4472cc33ca01bc
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Nov 26 10:57:06 2010 +0000
i915: Separate BLEND from general context state.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4f82585e279276e08c719d55218cd64a2c880a6b
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Nov 26 10:25:23 2010 +0000
i915: Only flag context changes if the actual state is changed
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0b0cad38c57fbe59710cb4058866b2e68f6d471a
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Nov 25 22:27:37 2010 +0000
i915: suppress repeated sampler state emission
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=87641cffd97f328e846604d314c21582f426a19a
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Nov 25 21:39:21 2010 +0000
i915: Eliminate redundant CONSTANTS updates
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=41260a9bf63aa61f88f188053f1ed4dba3a852d2
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Tue Feb 8 22:58:35 2011 +0000
i965: Use compiler builtins when available
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8ea6e98c7be6483514769b03ffa6c6f4f7b2e0be
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sun Feb 20 15:36:52 2011 +0000
i965: Micro-optimise check_state
Replace the intermediate tests due to the logical or with the bitwise
or.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=50ade6ea697953bb17e3ca7210515fbd0411cd1e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Dec 30 21:47:39 2010 +0000
intel: use throttle ioctl for throttling
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 <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=46131a824ffa3b658c822fd6cc543a5935773a6f
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Feb 12 11:28:25 2011 +0000
i965: Remove unused 'next_free_page' member
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=57ca0803b34587f1148b218a11d2193b0d4f4c97
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Feb 11 00:03:48 2011 +0000
intel: Skip the flush before read-pixels via blit
As we will flush when reading the return values of the blit, we can forgo
the earlier flush.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c625aa19cb53ed27f91bfd16fea6ea727e9a5bbd
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Feb 18 10:37:43 2011 +0000
intel: extend current vertex buffers
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a07e4811794051dc65187d17b7f85e340e61854e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Feb 18 12:30:37 2011 +0000
intel: Use specified alignment for writes into the upload buffer
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d9e591391d490c83ce301aa568a2e0afe4cc3c0a
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Feb 11 15:29:26 2011 +0000
i965: Clean up brw_prepare_vertices()
Use a temporary glarray variable to replace the numerous input->glarray.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3630d5b69afcecc3142d2c4897835175886f4bd8
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Feb 11 19:40:08 2011 +0000
intel: combine short memcpy using a temporary allocated buffer
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=dfc6c96e5c470f6136cad26b753c024538fd09a0
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Feb 11 14:14:18 2011 +0000
i965: upload normal arrays as interleaved
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=94d73d700e804ce78c214c58e84382c81dcb8280
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Feb 11 14:45:19 2011 +0000
i965: interleaved vbo
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=559435d9152acc7162e4e60aae6591c7c6c8274b
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Feb 11 14:45:10 2011 +0000
i965: emit one vb packet per vbo
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=abb51097566c401344b22a7ee9d699f002a1977f
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Feb 11 00:18:21 2011 +0000
i965: upload transient indices into the same discontiguous buffer
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=60bb3e5614a533ff886bf1ddb6341ff34f75c886
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sun Feb 20 13:37:00 2011 +0000
i965: suppress repeat-emission of identical vertex elements
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=aac120977d1ead319141d48d65c9bba626ec03b8
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sun Feb 20 13:23:47 2011 +0000
i965: Move repeat-instruction-suppression to batchbuffer core
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8d68a90e225d831a395ba788e425cb717eec1f9a
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Feb 10 20:25:51 2011 +0000
intel: use pwrite for batch
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3f55683927278e57f3ef8a151d15f4cffdc060dc
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Feb 10 18:31:13 2011 +0000
i965: drop state_bo references to batch_bo
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1be3764dbe8d8ab2259c206a2158fe8f3c62c962
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Feb 10 18:14:40 2011 +0000
i965: directly write wm state to batch
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=df156549e7ce284f0cf887eec1bad9aa1392ebbf
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Feb 10 18:11:58 2011 +0000
i965: write cc straight to batch
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f29606598e7703d830440a878673d98e7ce13218
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Feb 10 18:10:06 2011 +0000
i965: switch gen6 to use its own cc state bo
In preparation for a greater change, use the color_calc_state_bo already
provisioned for this purpose.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8a9e67b8df9836408270a4bc3660ec45b622ae56
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Feb 10 00:25:17 2011 +0000
intel: Buffered upload
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=40ee15407ab626f466a12c239fc39cb872bec804
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Feb 9 10:00:09 2011 +0000
intel: Replace the bo for a complete update
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=abb37861d9f3310fe2d16194d893682092f41087
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Tue Feb 8 22:22:36 2011 +0000
i965: Combine vb upload buffer with the general upload buffer
Reuse the new common upload buffer for uploading temporary indices and
rebuilt vertex arrays.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e476e122207e6195a16a8c7d2cab90eeba227934
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Tue Feb 8 20:01:10 2011 +0000
intel: Pack dynamic draws together
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d0809d7b15ba58c05bb0b63128c9cf7042304cd2
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Tue Feb 8 16:57:26 2011 +0000
intel: Use system memory for DYNAMIC_DRAW source objects
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 at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=45ba7afbd15b28ffd61548ee46334ff4527a7cde
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Jan 29 14:01:50 2011 +0000
i965: Trim the trailing NOOP from 3DSTATE_INDEX_BUFFER
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=13bab58f04c1ec6d0d52760eab490a0997d9abe2
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Feb 18 17:51:10 2011 +0000
i965: Fallback on encountering a NULL render buffer
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 at chris-wilson.co.uk>
More information about the mesa-commit
mailing list