History log of /external/mesa3d/src/gallium/drivers/swr/rasterizer/core/ringbuffer.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a16d274032cc1ee264b14de39be1bbb3f923bfb0 15-Jun-2016 Tim Rowley <timothy.o.rowley@intel.com> swr: [rasterizer core] fix dependency bug

Never be dependent on "draw 0", instead have a bool that makes the draw
dependent on the previous draw or not dependent at all.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
/external/mesa3d/src/gallium/drivers/swr/rasterizer/core/ringbuffer.h
73a9154bdef807330ec3d75a79610532e33edb75 15-Jun-2016 Tim Rowley <timothy.o.rowley@intel.com> swr: [rasterizer core] use wrap-around safe compares for dependency checking

Move drawIDs from 64-bit to 32-bit to increase perf.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
/external/mesa3d/src/gallium/drivers/swr/rasterizer/core/ringbuffer.h
4997169779069692c0e64df2dfb89185ae48f193 06-May-2016 Tim Rowley <timothy.o.rowley@intel.com> swr: [rasterizer] rename _aligned_malloc to AlignedMalloc

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
/external/mesa3d/src/gallium/drivers/swr/rasterizer/core/ringbuffer.h
e7201bd31b4c7beb1a2d0c4659477946e263d5cf 23-Apr-2016 Tim Rowley <timothy.o.rowley@intel.com> swr: [rasterizer] warning cleanup

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
/external/mesa3d/src/gallium/drivers/swr/rasterizer/core/ringbuffer.h
61beaa22795d45f3416ecb27de54a9ee8ae1b283 09-Mar-2016 Tim Rowley <timothy.o.rowley@intel.com> swr: [rasterizer core] subcontext rework
/external/mesa3d/src/gallium/drivers/swr/rasterizer/core/ringbuffer.h
45f0ce168ce21a7a95f48d3164e42a947732b896 20-Feb-2016 Tim Rowley <timothy.o.rowley@intel.com> swr: [rasterizer core] RingBuffer class for DC/DS

Use head/tail ring buffer indices for thread synchronization.

1. SwrWaitForIdle loops until ring is empty. (head == tail)
2. GetDrawContext waits until ring is not full. (head - tail) == Ring Size
3. Draw enqueues by incrementing head.
4. Last worker thread to move past a DC dequeues by incrementing tail.

Todo: To reduce contention we can cache the tail in the API thread. For
example, if you know you have 64 free entries in the ring then you don't
need to keep checking the tail until you used those 64 entries.
/external/mesa3d/src/gallium/drivers/swr/rasterizer/core/ringbuffer.h