History log of /external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
74d7ef0961b3aace03aea88944155272ac341b59 08-Jan-2012 Kenneth Graunke <kenneth@whitecape.org> i965: Remove BRW_NEW_URB_FENCE dirty bit from Gen6+ atoms.

The BRW_NEW_URB_FENCE dirty bit is only flagged by the
brw_recalculate_urb_fence state atom which isn't used on Gen6+.

Since it's never flagged, there's no reason to depend on it.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
9308f298300beaa757194a0db8ed50924754c011 28-Nov-2011 Paul Berry <stereotype441@gmail.com> i965 gen6: Initial implementation of transform feedback.

This patch adds basic transform feedback capability for Gen6 hardware.
This consists of several related pieces of functionality:

(1) In gen6_sol.c, we set up binding table entries for use by
transform feedback. We use one binding table entry per transform
feedback varying (this allows us to avoid doing pointer arithmetic in
the shader, since we can set up the binding table entries with the
appropriate offsets and surface pitches to place each varying at the
correct address).

(2) In brw_context.c, we advertise the hardware capabilities, which
are as follows:

MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 64
MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 4
MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 16

OpenGL 3.0 requires these values to be at least 64, 4, and 4,
respectively. The reason we advertise a larger value than required
for MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS is that we have already
set aside 64 binding table entries, so we might as well make them all
available in both separate attribs and interleaved modes.

(3) We set aside a single SVBI ("streamed vertex buffer index") for
use by transform feedback. The hardware supports four independent
SVBI's, but we only need one, since vertices are added to all
transform feedback buffers at the same rate. Note: at the moment this
index is reset to 0 only when the driver is initialized. It needs to
be reset to 0 whenever BeginTransformFeedback() is called, and
otherwise preserved.

(4) In brw_gs_emit.c and brw_gs.c, we modify the geometry shader
program to output transform feedback data as a side effect.

(5) In gen6_gs_state.c, we configure the geometry shader stage to
handle the SVBI pointer correctly.

Note: ordering of vertices is not yet correct for triangle strips
(alternate triangles are improperly oriented). This will be addressed
in a future patch.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
d4976158c7f32705b48c773c3abd1b22bebe9c16 29-Nov-2011 Paul Berry <stereotype441@gmail.com> i965 gen6: Implement pass-through GS for transform feedback.

In Gen6, transform feedback is accomplished by having the geometry
shader send vertex data to the data port using "Streamed Vertex Buffer
Write" messages, while simultaneously passing vertices through to the
rest of the graphics pipeline (if rendering is enabled).

This patch adds a geometry shader program that simply passes vertices
through to the rest of the graphics pipeline. The rest of transform
feedback functionality will be added in future patches.

To make the new geometry shader easier to test, I've added an
environment variable "INTEL_FORCE_GS". If this environment variable
is enabled, then the pass-through geometry shader will always be used,
regardless of whether transform feedback is in effect.

On my Sandy Bridge laptop, I'm able to enable INTEL_FORCE_GS with no
Piglit regressions.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
911768700ed63c937bfcc75ec9afcfd1aa66f690 16-Jun-2011 Eric Anholt <eric@anholt.net> i965/gen6: Remove state flagging on BRW_NEW_CURBE_OFFSETS.

That flag was leftover from gen4, where brw_curbe.c is choosing ranges
of the CURBE space for constants to live in, and the unit state tells
where to load them from. That's not the case on gen6 -- we don't set
this flag (since constants aren't in the URB), nor do we have any
state like that to upload.
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
c173541d9769d41a85cc899bc49699a3587df4bf 27-Apr-2011 Eric Anholt <eric@anholt.net> i965: Use state streaming on programs, and state base address on gen5+.

There will be a little bit of thrashing of the program cache BO as the
cache warms up, but once the application is in steady state, this
reduces relocations on gen5 and later.

On my T420 laptop, cairogl firefox-talos-gfx performance improves 2.6%
+/- 1.3% (n=6). No statistically significant performance difference
on nexuiz (n=5).
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
35b3f597bd1729da4483857cc0e88e81fb2a2419 11-Apr-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Never enable the GS on Gen6.

Prior to Gen6, we use the GS for breaking down quads, quad-strips,
and line loops. On Gen6, earlier stages already take care of this,
so we never need the GS.

Since this code is likely completely untested, remove it for now.
We can write new code when enabling real geometry shaders.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
e31defc825ee94f1d1092e277954abad7097c552 04-Jan-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Rename various gen6 #defines to match the documentation.

This should make it easier to cross-reference the code and hardware
documentation, as well as clear up any confusion on whether constants
like CMD_3D_WM_STATE mean WM_STATE (pre-gen6) or 3DSTATE_WM (gen6+).

This does not rename any pre-gen6 defines.
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
2595589f1df351895bc5b1a92f19e995a19da15b 19-Oct-2010 Eric Anholt <eric@anholt.net> i965: Remove the gen6 emit_mi_flushes I sprinkled around the driver.

These were for debugging in bringup. Now that relatively complicated
apps are working, they haven't helped debug anything in quite a while.
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
7319b19fc94c3b49d19b8bf9ce52dc17db3ac6f3 20-Mar-2010 Eric Anholt <eric@anholt.net> i965: Force single program flow in SNB GS, to match gen4 GS.
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
c76d4db25260dd68684bf784efacd7323c7cab8b 26-Feb-2010 Vinson Lee <vlee@vmware.com> i965: Remove unnecessary headers.
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
078e7b62f69658e40aedea59cf6f005162a29f83 24-Feb-2010 Eric Anholt <eric@anholt.net> i965: Emit SNB FF unit state after the unit's push constants.

There's a BUN for the WM unit that says WM_STATE must immediately
follow PS_CONSTANTS, which this addresses. Presumably other units are
roughly the same, too.
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
5878c841e90a8006715877045aa95a752472eaab 01-Feb-2010 Eric Anholt <eric@anholt.net> i965: Set GS rendering enabled even when the GS stage is disabled.

This is copying the behavior of other drivers.
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
dd743fa36fa9303c2a2d0e7d3798fdc00ef43287 18-Dec-2009 Eric Anholt <eric@anholt.net> i965: Fixup Sandybridge GS packet from doc updates.
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
d971375bc1872cb2d95a710e3d62f5b037fbe7f7 29-Jan-2010 Eric Anholt <eric@anholt.net> i965: Giant pile of flushing to track down SNB bringup issues.

This should go away before we push the code.
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
98f9666f04eed9ae873fdea20c4c4b9db6cead84 04-Dec-2009 Eric Anholt <eric@anholt.net> i965: Get vp-tri batchbuffers running (no rendering).
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c
520b64ddfb4c2efa742bc2217fef96fdec5eea9b 27-Nov-2009 Eric Anholt <eric@anholt.net> i965: Add untested passthrough GS setup.
/external/mesa3d/src/mesa/drivers/dri/i965/gen6_gs_state.c