URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2c6793fb6bc89df16c23f727bcb072a157ab8d10 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=298ebb78de8a6b6edf0aa0fe8d784d00bbc2930e Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7c97e288fb6a105ea60c377aef4472cc33ca01bc Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4f82585e279276e08c719d55218cd64a2c880a6b Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0b0cad38c57fbe59710cb4058866b2e68f6d471a Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Thu Nov 25 22:27:37 2010 +0000 i915: suppress repeated sampler state emission Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=87641cffd97f328e846604d314c21582f426a19a Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Thu Nov 25 21:39:21 2010 +0000 i915: Eliminate redundant CONSTANTS updates Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=41260a9bf63aa61f88f188053f1ed4dba3a852d2 Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Tue Feb 8 22:58:35 2011 +0000 i965: Use compiler builtins when available Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8ea6e98c7be6483514769b03ffa6c6f4f7b2e0be Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=50ade6ea697953bb17e3ca7210515fbd0411cd1e Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=46131a824ffa3b658c822fd6cc543a5935773a6f Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=57ca0803b34587f1148b218a11d2193b0d4f4c97 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c625aa19cb53ed27f91bfd16fea6ea727e9a5bbd Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a07e4811794051dc65187d17b7f85e340e61854e Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d9e591391d490c83ce301aa568a2e0afe4cc3c0a Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3630d5b69afcecc3142d2c4897835175886f4bd8 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=dfc6c96e5c470f6136cad26b753c024538fd09a0 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=94d73d700e804ce78c214c58e84382c81dcb8280 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=559435d9152acc7162e4e60aae6591c7c6c8274b Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=abb51097566c401344b22a7ee9d699f002a1977f Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=60bb3e5614a533ff886bf1ddb6341ff34f75c886 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=aac120977d1ead319141d48d65c9bba626ec03b8 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8d68a90e225d831a395ba788e425cb717eec1f9a Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3f55683927278e57f3ef8a151d15f4cffdc060dc Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1be3764dbe8d8ab2259c206a2158fe8f3c62c962 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=df156549e7ce284f0cf887eec1bad9aa1392ebbf Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f29606598e7703d830440a878673d98e7ce13218 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8a9e67b8df9836408270a4bc3660ec45b622ae56 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=40ee15407ab626f466a12c239fc39cb872bec804 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=abb37861d9f3310fe2d16194d893682092f41087 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e476e122207e6195a16a8c7d2cab90eeba227934 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d0809d7b15ba58c05bb0b63128c9cf7042304cd2 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=45ba7afbd15b28ffd61548ee46334ff4527a7cde Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=13bab58f04c1ec6d0d52760eab490a0997d9abe2 Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit