History log of /external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9b4053cabd8bda180b352d2d2047209f6ca5f6e8 06-Aug-2012 Eric Anholt <eric@anholt.net> i965: Drop the confusing saturate argument to math instruction setup.

This was ridiculous. We were ignoring the inst->header.saturate flag in the
case of math and only math. On gen4, we would leave inst->header.saturate in
place if it happened to be set, which would end up being applied to the
implicit mov and thus trash the first argument. On gen6, we would overwrite
inst->header.saturate with the saturate flag from the argument, which was not
set appropriately in brw_vec4_emit.cpp, and was only not a bug due to our
incompetence at coalescing saturate moves.

By ripping the argument out and making saturate work just like all the other
brw_eu_emit.c code generation, we can avoid both these classes of bugs.

Fixes piglit fog-modes, and the new specific fs-saturate-exp2 case.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48628
NOTE: This is a candidate for the 8.0 branch.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
148c8e639da7ee10fc9e002e3c6d60e17d218b21 19-Jul-2012 Paul Berry <stereotype441@gmail.com> i965: Use sendc for all render target writes on Gen6+.

The sendc instruction causes the fragment shader thread to wait for
any dependent threads (i.e. threads rendering to overlapping pixels)
to complete before sending the message. We need to use sendc on the
first render target write in order to guarantee that fragment shader
outputs are written to the render target in the correct order.

Previously, we only used the "sendc" instruction when writing to
binding table index 0. This did the right thing for fragment shaders,
because our fragment shader back-ends always issue their first render
target write to binding table index 0. However, it did the wrong
thing for blorp, which performs its render target writes to binding
table index 1.

A more robust solution is to use sendc for all render target writes.
This should not produce any performance penalty, since after the first
sendc, all of the dependent threads will have completed.

For more information about sendc, see the Ivy Bridge PRM, Vol4 Part3
p218 (sendc - Conditional Send Message), and p54 (TDR Registers).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
6a27506181b29c8b7eda7bd6cf80689f849e181d 07-Jul-2012 Paul Berry <stereotype441@gmail.com> i965: Add support for AVG instruction.

From the Ivy Bridge PRM, Vol4 Part3 p152:

"The avg instruction performs component-wise integer average of
src0 and src1 and stores the results in dst. An integer average
uses integer upward rounding. It is equivalent to increment one to
the addition of src0 and src1 and then apply an arithmetic right
shift to this intermediate value."

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
29362875f2613ad87abe7725ce3c56c36d16cf9b 25-Apr-2012 Eric Anholt <eric@anholt.net> i965/gen6+: Add support for GL_ARB_blend_func_extended.

v2: Add support for gen6, and don't turn it on if blending is
disabled. (fixes GPU hang), and note it in docs/GL3.txt

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
9e9ae280e215988287b0f875c81bc2e146b9f5dd 04-May-2012 Eric Anholt <eric@anholt.net> Revert "i965/fs: Jump from discard statements to the end of the program when done."

This reverts commit 31866308fcf989df992ace28b5b986c3d3770e90.

Fixes piglit glsl-fs-discard-exit-3 and unigine tropics rendering.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
31866308fcf989df992ace28b5b986c3d3770e90 19-Dec-2011 Eric Anholt <eric@anholt.net> i965/fs: Jump from discard statements to the end of the program when done.

From the GLSL 1.30 spec:

The discard keyword is only allowed within fragment shaders. It
can be used within a fragment shader to abandon the operation on
the current fragment. This keyword causes the fragment to be
discarded and no updates to any buffers will occur. Control flow
exits the shader, and subsequent implicit or explicit derivatives
are undefined when this control flow is non-uniform (meaning
different fragments within the primitive take different control
paths).

v2: Don't emit the final HALT if no other HALTs were emitted.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (v1)
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
172bb92db1a3c317867d9cfec6f15c09c37a0f6c 19-Feb-2012 Kenneth Graunke <kenneth@whitecape.org> i965: Only set Last Render Target Select on the last FB write.

Fixes GPU hangs in OilRush, Trine, and Amnesia: The Dark Descent,
which all use MRT (multiple render targets).

NOTE: This is a candidate for release branches.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38720
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40059
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45216
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
2b28fd6ca603df40a5d02aac4035eced3a1d079a 22-Mar-2010 Eric Anholt <eric@anholt.net> i965: Add support for the MAD opcode on gen6+.

v2: Fix MRF handling on gen7.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (v1)
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
e910241e9754b6e673ed0fc3133c8b1de56e76c7 27-Jan-2012 Eric Anholt <eric@anholt.net> i965/fs: Fix rendering corruption in unigine tropics.

We were allocating registers into the MRF hack region, resulting in
sparkly renering in a few of the scenes. We could do better
allocation by making an MRF class, having MRFs conflict with the
corresponding GRFs, and tracking the live intervals of the "MRF"s and
setting up the conflicts. But this is way easier for the moment.

NOTE: This is a candidate for the 8.0 branch.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
5f4575d42fdaaf671d4b3cdcf2c733ad9d35d339 26-Jan-2012 Kenneth Graunke <kenneth@whitecape.org> i965: Expose brw_set_sampler_message for use outside brw_eu_emit.c.

brw_SAMPLE is full of complex workarounds for original Broadwater
hardware, and I'd rather avoid all that for my next Ivybridge patch.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
5acc7f38d42859db459567d4442c18764a4072e7 17-Jan-2012 Kenneth Graunke <kenneth@whitecape.org> i965: Bump Ivybridge's fake MRF range to g112-127 instead of g111-126.

When I originally implemented the hack to use GRFs 111+ as fake MRFs, I
did so purely to avoid rewriting all the code that dealt with MRFs.
However, it turns out that a similar hack is actually required.

Newly discovered language in the BSpec indicates that SEND instructions
with EOT set "should" use g112-g127 as their source registers. Based on
assertions in the simulator, this is actually a requirement on certain
platforms.

Since we're faking MRFs already, we may as well use the officially
sanctioned range. My guess is that we avoided this issue because we
seldom use m0: URB writes in the new VS backend start at m1, and RT
writes in the new FS backend start at m2.

NOTE: This is a candidate for stable release branches.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
bf2c7469fba256e8d5fb3b5c6c130204550ec253 30-Dec-2011 Eric Anholt <eric@anholt.net> i965: Silence gcc warning from resizing EU store changes.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
3aa3c3f75894ca0eb08087c0ec3dd114eeae4bb7 21-Dec-2011 Yuanhan Liu <yuanhan.liu@linux.intel.com> i965: increase the brw eu instruction store size dynamically

Here is the final patch to enable dynamic eu instruction store size:
increase the brw eu instruction store size dynamically instead of just
allocating it statically with a constant limit. This would fix something
that 'GL_MAX_PROGRAM_INSTRUCTIONS_ARB was 16384 while the driver would
limit it to 10000'.

v2: comments from ken, do not hardcode the eu limit to (1024 * 1024)

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
8d1b378939768c4054b35b5da592af102345ebed 21-Dec-2011 Yuanhan Liu <yuanhan.liu@linux.intel.com> i965: call next_insn() before referencing a instruction by index

A single next_insn may change the base address of instruction store
memory(p->store), so call it first before referencing the instruction
store pointer from an index.

This the final prepare work to enable the dynamic store size.

v2: comments from Ken, define emit_endif as bool type

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
328e6a5497e54b0e8aed803cf6d2ae9a2a00b2fe 21-Dec-2011 Yuanhan Liu <yuanhan.liu@linux.intel.com> i965: get the jmp distance by instruction index

If dynamic instruction store size is enabled, while after the brw_JMPI()
and before the brw_land_fwd_jump() function, the eu instruction store
base address(p->store) may change. Thus, the safe way to reference the
jmp instruction is by index instead of by the instruction address.

v2: comments from Eric, don't change the prototype of brw_JMPI

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
0a17093eaf84696b05d04a45d6d51281f7b2786b 21-Dec-2011 Yuanhan Liu <yuanhan.liu@linux.intel.com> i965: let the if_stack just store the instruction index

If dynamic instruction store size is enabled, while after
the brw_IF/ELSE() and before the brw_ENDIF() function, the
eu instruction store base address(p->store) may change.

Thus let if_stack just store the instruction index. This is
somehow more flexible and safe than store the instruction
memory address.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
f1d89638c02afafbf82ef657cd6ba9965dad6738 06-Dec-2011 Eric Anholt <eric@anholt.net> i965: Don't make consumers of brw_CONT/brw_WHILE track if depth in loop.

The codegen backends all had this same tracking, so just do it at the
EU level.

Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
ce6be334bbf7f44c71ad5d190f9fb075d2f9a38c 06-Dec-2011 Eric Anholt <eric@anholt.net> i965: Don't make consumers of brw_WHILE do pre-gen6 BREAK/CONT patching.

The EU code itself can just do this work, since all the consumers were
duplicating it.

Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
32118cfe37495738ed5931c6b1a71b8ee2ad189c 06-Dec-2011 Eric Anholt <eric@anholt.net> i965: Don't make consumers of brw_DO()/brw_WHILE() track loop start.

This is a similar cleanup to what we did for brw_IF(), brw_ELSE(),
brw_ENDIF() handling.

Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
9f8814752f306cb9a26d283f0b7cf876639e10f7 06-Dec-2011 Eric Anholt <eric@anholt.net> i965: Drop unused do_insn argument from gen6_CONT().

The branch distances get patched up later at the WHILE instruction.

Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.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/brw_eu_emit.c
fd5d0c8b12a0e144aa8e95540c0da2161d8e089a 05-Dec-2011 Paul Berry <stereotype441@gmail.com> i965 gen6+: Use 1-wide null operands for IF instructions

The Sandy Bridge PRM, volume 4, part 2, section 5.3.10 ("5.3.10
Register Region Restrictions") contains the following restriction on
the execution size and operand width of instructions:

"3. ExecSize must be equal to or greater than Width."

When emitting an IF instruction in single program flow mode on Gen6+,
we use an ExecSize of 1, therefore the Width of each operand must also
be 1.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
dabe15da4f81546b5c9fca8c208d31bfe98ada9f 25-Nov-2011 Paul Berry <stereotype441@gmail.com> i965: Only convert if/else to conditional adds prior to Gen6.

Normally when outputting instructions in SPF (single program flow)
mode, we convert IF and ELSE instructions to conditional ADD
instructions applied to the IP register. On platforms prior to Gen6,
flow control instructions cause an implied thread switch, so this is a
significant savings.

However, according to the SandyBridge PRM (Volume 4 part 2, p79):

[Errata DevSNB{WA}] - When SPF is ON, IP may not be updated by
non-flow control instructions.

So we have to disable this optimization on Gen6.

On later platforms, there is no significant benefit to converting flow
control instructions to ADDs, so for the sake of consistency, this
patch disables the optimization on later platforms too.

The reason we never noticed this problem before is that so far we
haven't needed to use SPF mode on Gen6. However, later patches in
this series will introduce a Gen6 GS program which uses SPF mode.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
e304aa3600f865db533d273e2c1a554cb6a54f05 15-Nov-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Make gen6_resolve_implied_move a no-op for MRF sources.

Attempting to move an MRF to a MRF is not only pointless, it will fail
because MRFs are read-only, resulting in garbage in your register.

If we already set up a MRF source, there's nothing to resolve anyway.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
7e84a64dd02794a59586ba58ef0864118534d3c6 10-Nov-2011 Eric Anholt <eric@anholt.net> i965/gen4: Fix sampling from integer textures.

On original gen4, the surface format didn't determine the return data
type from sampling like it does on g45 and later.

Fixes GL_EXT_texture_integer/texture_integer_glsl130

Reviewed-by: Paul Berry <stereotype441@gmail.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
a73c65c5342bf41fa0dfefe7daa9197ce6a11db4 18-Oct-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Enable faster workaround-free math on Ivybridge.

According to the documentation, Ivybridge's math instruction works in
SIMD16 mode for the fragment shader, and no longer forbids align16 mode
for the vertex shader.

The documentation claims that SIMD16 mode isn't supported for INT DIV,
but empirical evidence shows that it works fine. Presumably the note
is trying to warn us that the variant that returns both quotient and
remainder in (dst, dst + 1) doesn't work in SIMD16 mode since dst + 1
would be sechalf(dst), trashing half your results. Since we don't use
that variant, we don't care and can just enable SIMD16 everywhere.

The documentation also still claims that source modifiers and
conditional modifiers aren't supported, but empirical evidence and
study of the simulator both show that they work just fine.

Goodbye workarounds. Math just works now.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
973b4ddd0e2f25cfd72cb945fbd38aed629a6fed 19-Oct-2011 Brian Paul <brianp@vmware.com> i965: remove unused vars in brw_set_ff_sync_message()
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
53798f90e818e9bf213c3ae4298751362a5ecd50 08-Oct-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Rename pixel_scoreboard_clear to last_render_target for clarity.

Finding this bit in the documentation proved challenging. It wasn't in
the SEND instruction's message descriptor section, nor the data port
message descriptor section. It turns out to be part of the Render
Target Write message's control bits, and in the documentation is named
"Last Render Target Select".

Shaders that use Multiple Render Targets should set this bit on the last
RT write, but not on any prior ones.

The GPU does update the Pixel Scoreboard appropriately, but doesn't
document this bit as directly causing a scoreboard clear.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
fa0aa3796d3483cf8924fa127085d075d34019e8 08-Oct-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Factor out code for setting Message Descriptors.

Every brw_set_???_message function had duplicated code, per-generation,
to set the Message Descriptor and Extended Message Descriptor bits
(SFID, message length, response length, header present, end of thread).

However, these fields are actually specified as part of the SEND
instruction itself; individual types of messages don't even specify
them (except for header present, but that's in the same bit location).

Since these are exactly the same regardless of the message type, just
create a function to set them, using the generic message structs. This
not only shortens the code, but hides a lot of the per-generation
complexity (like the SFID being in destreg__conditionalmod) in one spot.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
43ccd3200c394dd4d89ed96f039ca7d6cfff972f 08-Oct-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Remove EOT parameter from brw_SAMPLE and brw_set_sampler_message.

The existing code asserted that eot == 0, as it doesn't make sense for
a thread to sample a texture as the last thing it does.

It doesn't make much sense to pass around a dead parameter either.
Especially for a function which already has a long parameter list.

So, remove the parameter and just set EOT to 0.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
2e124388a4642d1e7f5154e7b83d38578c6b2789 08-Oct-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Rename BRW_MESSAGE_TARGET_* to BRW_SFID_* and document them.

When reading the data port code, it was not clear to me what these
values meant, nor where I could find them in the documentation.
Especially since the latest BSpec and older PRMs document them in
radically different places...neither of which are near the descriptions
of individual messages.

Cite the documentation, and rename them to SFID to signify that these
are Shared Function IDs that one can read about in the GPU overview,
rather than arbitrary bitfields. While we're add it, make them an enum.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
bbea5c5a5a7fb327d4ef03f80fe19cfa8d8edccd 08-Oct-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Clarify check for which cache to use on Gen6 data port reads.

Currently, we use the Render Cache for scratch access (read/write data)
and the Sampler Cache for all read only data (pull constants).

Reversing the condition here is clearer: if the caller requested the
Render Cache, use that. Otherwise, they requested the Data Cache
(which does not exist on Gen6) or Sampler Cache, so use the Sampler
Cache.

This should not change behavior in any way.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
0d4a9ba9b247664bc5662b3db774064778f9aa17 08-Oct-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Use Ivybridge's "Legacy Data Port" for reads/writes.

Using the constant cache for reads isn't going to work for scratch
reads (variably-indexed arrays or register spills), as these aren't
constant at all.

Also, in the new VS backend, use the proper message number for OWord
Dual Block Write messages. It's now 10, instead of 9.

+205 piglits.

NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
2e5a1a254ed81b1d3efa6064f48183eefac784d0 07-Oct-2011 Kenneth Graunke <kenneth@whitecape.org> intel: Convert from GLboolean to 'bool' from stdbool.h.

I initially produced the patch using this bash command:
for file in {intel,i915,i965}/*.{c,cpp,h}; do [ ! -h $file ] && sed -i
's/GLboolean/bool/g' $file && sed -i 's/GL_TRUE/true/g' $file && sed -i
's/GL_FALSE/false/g' $file; done

Then I manually added #include <stdbool.h> to fix compilation errors,
and converted a few functions back to GLboolean that were used in core
Mesa's function pointer table to avoid "incompatible pointer" warnings.

Finally, I cleaned up some whitespace issues introduced by the change.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Chad Versace <chad@chad-versace.us>
Acked-by: Paul Berry <stereotype441@gmail.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
b861479f83ea140bfe24357d09f18a6d026d97b5 07-Oct-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Fix inconsistent indentation in brw_eu_emit.c.

Most of these functions used three spaces for the first level of
indentation, but four spaces for the next level. One used tabs and then
three spaces. Some used 3/4 in a then block but 3/3 in the else block.

Normally I try to avoid field days like this, but since the functions
were so inconsistent, even internally, it was making it difficult to
edit without introducing spurious whitespace changes.

So, just get it over with. git diff -b shows 0 lines changed.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
6960f786c8e1bfbaa0d9eb5f43b3b6bfc7135fcf 29-Sep-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Set the signed/unsigned type bit in Gen4/5 math messages.

It never mattered before since we only did floating point math.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
6b10aab2bbe0e69e2e8efca5e754870c8a543064 29-Sep-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Fix message and response length calculations for INT DIV.

Both POW and INT DIV need a message length of 2; previously, we only
checked for POW.

Also, BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER has a response
length of 2; previously, we only checked for SINCOS. We don't use this
message, but in case we ever decide to, we may as well fix it now.

While we're at it, just move these computations into
brw_set_math_message, since they're entirely based on the function.
This fixes it for both brw_math and the old backend's brw_math_16.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
ee2bf3a4b6b37287e6d150d3dd6742b7fa4f8215 29-Sep-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Fix assertions about register types for INT DIV in brw_math.

BRW_MATH_FUNCTION_REMAINDER was missing. Also, it seems worthwhile to
assert that INT DIV's arguments are signed/unsigned integers.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
483f5b348b0f3c0ca7082fd2047c354e8af285e7 22-Aug-2011 Eric Anholt <eric@anholt.net> i965/vs: Add support for pull constant loads for uniform arrays.

v2: reworked the instruction emit and made use of gen6_resolve_implied_move,
from Ken's review
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
2f0edc60f4bd2ae5999a6afa656e3bb3f181bf0f 26-Aug-2011 Chad Versace <chad@chad-versace.us> i965: Fix Android build by removing relative includes

Replace each occurence of
#include "../glsl/*.h"
with
#include "glsl/*.h"

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
f7d2dcae3b6bf39b14c1e71f0721d0e4a2833962 18-Aug-2011 Kenneth Graunke <kenneth@whitecape.org> i965/gen7: Use align1 mode to set URB_WRITE_HWORD channel enables.

Makes the new vertex shader backend work on Ivybridge.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
d0c595ac8032aa9aed402a513870b8dc92e42903 12-Aug-2011 Eric Anholt <eric@anholt.net> i965/gen6: Force WHILE exec size to 8.

We can't just look at the instruction that happens to appear at the
start of the loop, because it might be some other exec size and cause
us to only loop on the first N channels. We always want 8 in our
current code (since 16 doesn't work so we don't do 16-wide fragment in
that case).

Fixes loop-03.vert, which was triggering the assertions.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
d376fa8e84b044ead47586d1b56a10742bcbdac7 16-Aug-2011 Eric Anholt <eric@anholt.net> i965: Fix assertion failure on a loop consisting of while (true) { break }.

On enabling the precompile step in the VS, we tripped over this
assertion failure in glsl-link-bug-30552.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
0f22f98ccd69bb5e8df3c78203bce9bc630965c1 07-Aug-2011 Eric Anholt <eric@anholt.net> i965: Make some EU emit code for DP read/write messages non-static.

We keep building these strange interfaces for DP read/write where
there's a helper function with some partially-specific,
partially-general controls, which is used in exactly one place in code
generation. Making these public will let us set up those instructions
in the one place they're to be generated.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
b5846865deb20c54e88c7c1a7c732d29e9c47975 23-May-2011 Eric Anholt <eric@anholt.net> i965: Warnings cleanup.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
136eb2bde769713b100351ff96bceb970f068c0a 10-May-2011 Eric Anholt <eric@anholt.net> i965/fs: Add support for "if" statements in 16-wide mode on gen6+.

It turns out there's nothing in the hardware preventing this. It
appears that it ought to work on pre-gen6 as well, but just produces
GPU hangs.

Improves glbenchmark Egypt framerate 4.4% +/- 0.3% (n=3), and Pro by
2.6% +/- 0.6% (n=3).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
344283de5d3f4e2bfa10455f6b974cf731184b55 11-May-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Fix RNDZ and RNDE on Sandybridge and Ivybridge.

On gen4/5, the RNDZ and RNDE instructions return floor(x), but set special
"round increment bits" in the flag register; a predicated ADD (+1) fixes
the result.

The documentation still lists '.r' as existing, and says that the
predicated add is necessary, but it apparently lies. According to the
simulator, BRW_CONDITIONAL_R (7) is not a valid conditional modifier
and the RNDZ and RNDE instructions simply produce the correct value.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
199a2f90abdd5dd11f8e2b95e587401d3b46f3ff 11-May-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Fix data port reads on Ivybridge.

These also need to use gen7_dp.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
6e918163dfbdc829f31a0aefc07248c49b890d1d 30-Apr-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Make the CONT instruction point to the WHILE instruction.

This fixes piglit test glsl-fs-loop-continue.shader_test on Ivybridge.
According to the documentation, the CONT instruction's UIP field should
point to the WHILE instruction on both Sandybridge and Ivybridge.

The previous code made UIP point to the implicit DO instruction, which
seems incorrect. I'm not sure how it could have worked on Sandybridge.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
77397ef96edbc17a698ae2a02ec4807b1059c036 30-Apr-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Add support for loops on Ivybridge.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
64ce592679a5b08d66e3cbbf964f9e695e14aee1 16-Mar-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Add support for IF/ELSE/ENDIF control flow on Ivybridge.

Ivybridge's IF instruction doesn't support conditional modifiers.
It also introduces UIP, which must point to the ENDIF instruction.

ELSE and ENDIF remain the same except that JIP moves from dst to src1.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
36f8de02e71ee5c2ca55d86c486eb00d043ae1f5 29-Apr-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Fix sampler message descriptor on Ivybridge.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
09d881bf7420c97a0f684283c24b8ec3e42404ff 27-Apr-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Enable channel masks in Ivybridge's URB_WRITE_HWORD header.

This shouldn't be done using MRFs, but until I have a proper solution
for dealing with MRFs, this allows my hack to keep working.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
97d4d6f77e885d2c343697f26a5ecf821caaf13b 19-Apr-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Fix the URB write message descriptor on Ivybridge.

The message header is still incorrect, but this is a start.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
ce526a7452abf552af38b86bd3546d6ff9a83194 19-Apr-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Fix render target writes on Ivybridge.

Ivybridge shifts the data port messages by one bit.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
482e8a6cd59292c58b11a9282632aaa9b24f44ae 09-Apr-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Mad hacks to avoid using MRFs on Ivybridge.

Ivybridge's SEND instruction uses GRFs instead of MRFs. Unfortunately,
a lot of our code explicitly uses MRFs, and rewriting it would take a
fair bit of effort. In the meantime, use a hack:

- Change brw_set_dest, brw_set_src0, and brw_set_src1 to implicitly
convert any MRFs into the top 16 GRFs.
- Enable gen6_resolve_implied_move on Ivybridge: Moving g0 to m0
actually moves it to g111 thanks to the previous hack.

It remains to officially reserve these registers so the allocator
doesn't try to reuse them.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
c638180fc715aff84422c1092926120af966d417 16-May-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Rework IF/ELSE jump target back-patching.

The primary motivation for this is to better support Ivybridge control
flow. Ivybridge IF instructions need to point to the first instruction
of the ELSE block -and- the ENDIF instruction; the existing code only
supported back-patching one instruction ago.

A second goal is to simplify and centralize the back-patching, hopefully
clarifying the code somewhat.

Previously, brw_ELSE back-patched the IF instruction, and brw_ENDIF
back-patched the previous instruction (IF or ELSE). With this patch,
brw_ENDIF is responsible for patching both the IF and (optional) ELSE.

To support this, the control flow stack (if_stack) maintains pointers to
both the IF and ELSE instructions. Unfortunately, in single program
flow (SPF) mode, both were emitted as ADD instructions, and thus
indistinguishable.

To remedy this, this patch simply emits IF and ELSE, rather than ADDs;
brw_ENDIF will convert them to ADDs (the SPF version of back-patching).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
5936d96d33e767aa99f6afa92f2a6582ff04df23 16-May-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Move IF stack handling into the EU abstraction layer/brw_compile.

This hides the IF stack and back-patching of IF/ELSE instructions from
each of the code generators, greatly simplifying the interface.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
1309d2ea723613f1e755dd7785d22456dd39bb08 11-May-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Pass brw_compile pointer to brw_set_src[01].

This makes it symmetric with brw_set_dest, which is convenient, and will
also allow for assertions to be made based off of intel->gen.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
2bba244329a6751d5ac07041874b2969b67fa8ee 13-May-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Use BRW_DATAPORT_READ_TARGET_DATA_CACHE instead of 0.

Using the #define'd constant is better than 0 with a comment.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Chad Versace <chad.versace@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
c77855d64eae45786d2d637bd065c8a700b788e5 13-May-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Rename dp_render_target struct to gen6_dp.

This is actually just the message descriptor for Gen6+ dataport access;
it has nothing to do with the render cache. Access to the sampler cache
and constant cache also would use this struct; rename for clarity.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
17eaff77b09d356aae46c5d89a8eaa67cfa4c1e7 13-May-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Attempt to un-muddle Gen6 data port message target defines.

These are documented on page 245 of IHD_OS_Vol4_Part2.pdf (the public
Sandybridge documentation/SEND instruction description).

Somebody had the bright idea to reuse gen4/5 defines labelled READ/WRITE
which just happened to be the same values as Render Cache/Sampler Cache.
It turns out that this field has nothing to do with READ/WRITE on
Sandybridge, but rather represents which data port to direct it to.

This was especially confusing in brw_set_dp_read_message, which
used "BRW_MESSAGE_TARGET_DATAPORT_WRITE." In a read function.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
7c647a2fe98a645723fa5eace7f7f6c5c26f4f8e 14-Mar-2011 Eric Anholt <eric@anholt.net> i965: Move the destination reg setup for 8/16 wide to the emit code.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
4673f9433fb73febce796945e3883274636fbf62 15-Apr-2011 Eric Anholt <eric@anholt.net> i965: Quit spamming gen6 DP read/write send instructions with gen5 bits.

This was copy-and-paste from originally trying to get DP read/write
working reliably, and notably for other common messages (URB, sampler)
we weren't doing this.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
59c6b775a6aacfe03c84dae62c2fd45d4af9d70b 15-Apr-2011 Eric Anholt <eric@anholt.net> i965/fs: Add gen6 register spilling support.

Most of this is code movement to get the scratch space allocated in a
shared location. Other than that, the only real changes are that the
old oword block messages now operate on oword-aligned areas (with new
messages for unaligned access, which we don't do), and that the
caching control is in the SFID part of the descriptor instead of
message control.

Fixes glsl-fs-convolution-1.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
2432ca1c2e205100d48070305ba2d5f8978bce03 12-Apr-2011 Zou Nan hai <nanhai.zou@intel.com> Revert "i965: clear global offset to zero in m0.2 for VS DP read."

This reverts commit 66b66295d0bc856c69fdcccc22575580c7ecee16.
it was already fixed by commit 9d60a7ce08a67eb8b79c60f829d090ba4a37ed7e
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
66b66295d0bc856c69fdcccc22575580c7ecee16 07-Apr-2011 Zou Nan hai <nanhai.zou@intel.com> i965: clear global offset to zero in m0.2 for VS DP read.

Signed-off-by: Zou Nan hai <nanhai.zou@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
a019dd0d6e5bba00e8ee7818e004ee42ca507102 03-Apr-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Fix null register use in Sandybridge implied move resolution.

Fixes regressions caused by commit 9a21bc6401, namely GPU hangs when
running gnome-shell or compiz (Mesa bugs #35820 and #35853).

I incorrectly refactored the case that dealt with ARF_NULL; even in that
case, the source register needs to be changed to the MRF.

NOTE: This is a candidate for the 7.10 branch (if 9a21bc6401 is
cherry-picked, take this one too).
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
9d60a7ce08a67eb8b79c60f829d090ba4a37ed7e 29-Mar-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Resolve implied moves in brw_dp_READ_4_vs_relative.

Fixes piglit test glsl-vs-arrays-3 on Sandybridge, as well as garbage
rendering in 3DMarkMobileES 2.0's Taiji demo and GLBenchmark 2.0's
Egypt and PRO demos.

NOTE: This a candidate for stable release branches. It depends on
commit 9a21bc640188e4078075b9f8e6701853a4f0bbe4.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
9a21bc640188e4078075b9f8e6701853a4f0bbe4 16-Mar-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Refactor Sandybridge implied move handling.

This was open-coded in three different places, and more are necessary.
Extract this into a function so it can be reused.

Unfortunately, not all variations were the same: in particular, one set
compression control and checked that the source register was not
ARF_NULL. This seemed like a good idea, so all cases now do so.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
2279156fe7ac9718533b8b0de90ae96100486680 16-Mar-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Rename brw_(IF|CONT)_gen6 functions to gen6_(IF|CONT).
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
2baac48f3900b6e7a6443c6c116899cf95275629 16-Mar-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Rename BRW_DATAPORT_..._GEN6 messages to GEN6_... for consistency.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
dc987adc9f5f9f851be124985fa6bbcdbfa4a7a5 24-Dec-2010 Xiang, Haihao <haihao.xiang@intel.com> i965: use align1 access mode for instructions with execSize=1 in VS

All operands must be 16-bytes aligned in aligh16 mode. This fixes l_xxx.c
in oglconform.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
5dc53444c8323c1787dddbe6b67048828df9c684 23-Dec-2010 Eric Anholt <eric@anholt.net> i965: Correct the dp_read message descriptor setup on g4x.

It's mostly like gen4 message descriptor setup, except that the sizes
of type/control changed to be like gen5. Fixes 21 piglit cases on
gm45, including the regressions in bug #32311 from increased VS
constant buffer usage.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
4374703a9b2ce0be105ee544c8402a932e3e1f52 22-Dec-2010 Zhenyu Wang <zhenyuw@linux.intel.com> i965: explicit tell header present for fb write on sandybridge

Determine header present for fb write by msg length is not right
for SIMD16 dispatch, and if there're more output attributes, header
present is not easy to tell from msg length. This explicitly adds
new param for fb write to say header present or not.

Fixes many cases' hang and failure in GL conformance test.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
4fe78d3e12fa963273de4d83b1fd55a78a5d41bf 21-Dec-2010 Eric Anholt <eric@anholt.net> i965: Avoid using float type for raw moves, to work around SNB issue.

The SNB alt-mode math does the denorm and inf reduction even for a
"raw MOV" like we do for g0 message header setup, where we are moving
values that aren't actually floats. Just use UD type, where raw MOVs
really are raw MOVs.

Fixes glxgears since c52adfc2e1d130effea940e75690897eb5d3ceaa, but no
piglit tests had regressed(!)
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
3a3b1bd722786ab0b1386a3a505cadfa89798232 09-Dec-2010 Eric Anholt <eric@anholt.net> i965: Add support for gen6 reladdr VS constant loading.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
15566183a64ef3f9940962a3b08b1c3469c98566 09-Dec-2010 Eric Anholt <eric@anholt.net> i965: Add support for gen6 constant-index constant loading.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
14a9153a32255f186a30b500d6db412388f4de28 09-Dec-2010 Eric Anholt <eric@anholt.net> i965: Clean up VS constant buffer location setup.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
7ca7e9b626389dd6dac683c6664b8478e6d5c3b9 07-Dec-2010 Eric Anholt <eric@anholt.net> i965: Work around gen6 ignoring source modifiers on math instructions.

With the change of extended math from having the arguments moved into
mrfs and handed off through message passing to being directly hooked
up to the EU, it looks like the piece for doing source modifiers
(negate and abs) was left out.

Fixes:
fog-modes
glean/fp1-ARB_fog_exp test
glean/fp1-ARB_fog_exp2 test
glean/fp1-Computed fog exp test
glean/fp1-Computed fog exp2 test
ext_fog_coord-modes
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
72845d206e692581b6084c56b8d1f3bc689e8a03 07-Dec-2010 Eric Anholt <eric@anholt.net> i965: Handle saturates on gen6 math instructions.

We get saturate as an argument to brw_math() instead of as compile
state, since that's how the pre-gen6 send instructions work. Fixes
fp-ex2-sat.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
245662f3083795e272fe9ef5d4cbeb6d048cf0e5 03-Dec-2010 Eric Anholt <eric@anholt.net> i965: Add support for the instruction compression bits on gen6.

Since the 8-wide first-quarter and 16-wide first-half have the same
bit encoding, we now need to track "do you want instruction
compression" in the compile state.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
237aa33c67039f6660cac19f061057250b8b3697 04-Dec-2010 Eric Anholt <eric@anholt.net> i965: Make the sampler's implied move on gen6 be a raw move.

We were accidentally doing a float-to-uint conversion.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
5340dd8ccacda82d4e68a4357f90503c84831594 03-Dec-2010 Eric Anholt <eric@anholt.net> i965: Fix up gen6 samplers for their usage by brw_wm_emit.c

We were trying to do the implied move even when we'd already manually
moved the real header in place.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
ae0df25ab439508c8bca707b91bbf085ff16d47c 13-Nov-2010 Eric Anholt <eric@anholt.net> i965: Don't smash a group of coordinates doing gen6 16-wide sampler headers.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
843a6a308e05bd4bf2056e08ec65ac4770097b93 01-Dec-2010 Eric Anholt <eric@anholt.net> i965: Add support for gen6 CONTINUE instruction emit.

At this point, piglit tests for fragment shader loops are working.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
00e5a743e2ee3981a34b95067a97fa73c0f5d779 01-Dec-2010 Eric Anholt <eric@anholt.net> i965: Add support for gen6 BREAK ISA emit.

There are now two targets: the hop-to-end-of-block target, and the
target for where to resume execution for active channels.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
4890e0f09c934e3ffb692b417e5444e43685c876 01-Dec-2010 Eric Anholt <eric@anholt.net> i965: Add support for gen6 DO/WHILE ISA emit.

There's no more DO since there's no more mask stack, and WHILE has
been shuffled like IF was.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
9249af17b857e8d9a359b4cd04e9393aca517e9c 10-Nov-2010 Zhenyu Wang <zhenyuw@linux.intel.com> i965: fix dest type of 'endif' on sandybridge

That should also be immediate value for type W.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
88087ba1bf5566c8fe1c7d88028d2485126af286 26-Oct-2010 Eric Anholt <eric@anholt.net> i965: Drop the eot argument to read messages, which can never be set.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
3ee5d68075d1b198c92daf01826aba83a35fccf5 26-Oct-2010 Eric Anholt <eric@anholt.net> i965: Add support for constant buffer loads on gen6.

Fixes glsl-fs-uniform-array-5.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
1732a8bc72fe0a8eaf7449eda65eba1a017ae909 26-Oct-2010 Eric Anholt <eric@anholt.net> i965: Use SENDC on the first render target write on gen6.

This is apparently required, as the thread will be initiated while it
still has dependencies, and this is what waits for those to be
resolved before writing color.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
748f3744bebc37cc753a5ea1c321854c580a7317 26-Oct-2010 Eric Anholt <eric@anholt.net> i965: Clarify an XXX comment in FB writes with real info.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
3789d5025a3200c40a39119c94c3d38a13e4b65a 25-Oct-2010 Eric Anholt <eric@anholt.net> i965: Add EU code for dword scattered reads (constant buffer array indexing).
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
07cd8f46acc34b04308f81de2faf05ba33da264b 22-Oct-2010 Eric Anholt <eric@anholt.net> i965: Add support for pull constants to the new FS backend.

Fixes glsl-fs-uniform-array-5, but not 6 which fails in ir_to_mesa.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
0b77d57394a3712851ec271aa7ad353d56f302a1 21-Oct-2010 Eric Anholt <eric@anholt.net> i965: Don't emit register spill offsets directly into g0.

g0 is used by others, and is expected to be left exactly as it was
dispatched to us. So manually move g0 into our message reg when
spilling/unspilling and update the offset in the MRF. Fixes failures
in texture sampling after having spilled a register.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
99b2c8570ea6f46c6564681631f0e0750a0641cc 19-Oct-2010 Eric Anholt <eric@anholt.net> i965: Add support for register spilling.

It can be tested with if (0) replaced with if (1) to force spilling for all
virtual GRFs. Some simple tests work, but large texturing tests fail.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
6ea108e7db79cb7135a8a1ef216e25381f72c225 19-Oct-2010 Eric Anholt <eric@anholt.net> i965: Set the source operand types for gen6 if/else/endif to integer.

I don't think this should matter, but I'm not sure, and it's
recommended by a kernel checker in fulsim.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
d0c87b90a85af0bd9ca7f8cec411a458742190cc 19-Oct-2010 Eric Anholt <eric@anholt.net> i965: Add EU emit support for gen6's new IF instruction with comparison.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
f157812bbbcf9caac1f84988e738fc9d1e051056 14-Oct-2010 Kenneth Graunke <kenneth@whitecape.org> i965: Add support for ir_unop_round_even via the RNDE instruction.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
897f6d3c7d06316b0535971cc2de318157c23692 14-Oct-2010 Kenneth Graunke <kenneth@whitecape.org> i965: Correctly emit the RNDZ instruction.

Simply using RNDU, RNDZ, or RNDE does not produce the desired result.
Rather, the RND* instructions place a value in the destination register
that may be 1 less than the correct answer. They can also set per-channel
"increment bits" in a flag register, which, if set, mean dest needs to
be incremented by 1. A second instruction - a predicated add -
completes the job.

Notably, RNDD always produces the correct answer in a single
instruction.

Fixes piglit test glsl-fs-trunc.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
e8e79c1d7eed0f5ae8820611cb86bdbd6ce595e6 14-Oct-2010 Zhenyu Wang <zhenyuw@linux.intel.com> i965: Fix GS hang on Sandybridge

Don't use r0 for FF_SYNC dest reg on Sandybridge, which would
smash FFID field in GS payload, that cause later URB write fail.
Also not use r0 in any URB write requiring allocate.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
7b5bc38c44269fc51db2f8b5e4ba0222212c6d71 11-Oct-2010 Eric Anholt <eric@anholt.net> i965: Add a couple of checks for gen6 math instruction limits.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
978ffa1d61902f0d55e15fbc51af75d444f35124 09-Oct-2010 Vinson Lee <vlee@vmware.com> i965: Silence unused variable warning on non-debug builds.

Fixes this GCC warning.
brw_eu_emit.c: In function 'brw_math2':
brw_eu_emit.c:1189: warning: unused variable 'intel'
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
feca6609390d4642418cf7aab878e654964510c4 05-Oct-2010 Eric Anholt <eric@anholt.net> i965: Fix up IF/ELSE/ENDIF for gen6.

The jump delta is now in the part of the instruction where the
destination fields used to be, and the src args are ignored (or not,
for the new non-predicated IF that we don't use yet).
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
f7cb28fad9855020e9fbd1481df03bb09346d4be 05-Oct-2010 Eric Anholt <eric@anholt.net> i965: Gen6 no longer has the IFF instruction; always use IF.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
ea909be58dda7e916cb9ce434ecb78597881ad33 05-Oct-2010 Eric Anholt <eric@anholt.net> i965: Add support for gen6 FB writes to the new FS.

This uses message headers for now, since we'll need it for MRT. We
can cut out the header later.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
956f866030f7bea5fc4a2de28c72e60bdc3a5b3d 17-Sep-2010 Zhenyu Wang <zhenyuw@linux.intel.com> i965: Fix sampler on sandybridge

Sandybridge has not much change on texture sampler with Ironlake.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
c5a3b25bb954db49dcb5e7737018979782d2edba 28-Sep-2010 Zhenyu Wang <zhenyuw@linux.intel.com> i965: fix jump count on sandybridge

Jump count is for 64bit long each, so one instruction requires 2
like on Ironlake.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
67dafa4b56422b44ca26b093d8feb6e743eb89e6 17-Sep-2010 Zhenyu Wang <zhenyuw@linux.intel.com> i965: ff sync message change for sandybridge
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
fe2d4a5ea02df38c9940a726aa04bcf550fab1da 22-Aug-2010 Eric Anholt <eric@anholt.net> i965: Add support for POW in gen6 FS.

Fixes glsl-algebraic-pow-2 in brw_wm_glsl.c mode.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
a560a509fab467b0ed4be2bceaf1c5a60890ca0d 05-Sep-2010 Eric Anholt <eric@anholt.net> i965: Add some validation on BRW_OPCODE_MUL and ADD's arguments.

Now that we're playing with other types in brw_fs.cpp, it's easy to
trip over issues like these.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
0002069fd5117b52f0ae2be0b7e3d8e839a3a61c 05-Sep-2010 Eric Anholt <eric@anholt.net> i965: Add assertion for another requirement about types.

This catches a failure in the FS backend.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
5c777928591279886e015c10f640828f77b97559 04-Sep-2010 Eric Anholt <eric@anholt.net> i965: Add a bit of validation for some ISA restrictions in the docs.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
352dff62f8005add9e71e6b5ba3b3321cb953d73 29-Aug-2010 Eric Anholt <eric@anholt.net> i965: Make brw_CONT and brw_BREAK take the pop count.

We always need to set it, so pass it in.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
e6ec500e19f455237828f4f3955f888ad0b56382 21-Aug-2010 Eric Anholt <eric@anholt.net> i965: Also use the SIMD8 FB writes for SIMD8 mode on non-SNB.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
5266c0a0c82de625ccac57e7559f57399f761e9e 21-Aug-2010 Zhenyu Wang <zhenyuw@linux.intel.com> i965: Add support for FB writes on Sandybridge.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
3ce2eccbfb925a3af0b91a89a9f7a3603fa45d2d 21-Aug-2010 Zhenyu Wang <zhenyuw@linux.intel.com> i965: Set the destination horiz stride even for da16, as SNB seems to need it.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
21eaa62ba461854003e5f74e6fc32e559e9c8455 22-Jul-2010 Eric Anholt <eric@anholt.net> i965: Clean up brw_dp_READ_4_vs() now that it has fewer options to support.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
96b11f1e3ee12f06be1d33bf085bf1353f23e667 22-Jul-2010 Eric Anholt <eric@anholt.net> i965: Support relative addressed VS constant reads using the appropriate msg.

The previous support was overly complicated by trying to use the same
1-OWORD message for both offsets.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
04de6861c1a41859dd85ca066b964e5df3ad63b6 22-Jul-2010 Eric Anholt <eric@anholt.net> i956: Set the execution size correctly for scratch space writes.

Otherwise, the second half isn't written, and we end up reading back
black.

Fixes the remaining junk drawn in glsl-max-varyings, and will likely
help with a number of large real-world shaders.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
a3bfb2f755cb2255879600d12d8440fad7136a9a 21-Jul-2010 Eric Anholt <eric@anholt.net> i965: Use the pretty define for 4-oword DP reads.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
d2f3eac8ffba8db8b141f07c22f612362c63ffe9 21-Jul-2010 Eric Anholt <eric@anholt.net> i965: Set the send commit bit on register spills as required pre-gen6.

Otherwise, the subsequent read may not get the written value.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
20be3ff57670529a410b30a1008a71e768d08428 25-Jun-2010 Zhenyu Wang <zhenyuw@linux.intel.com> i965: Add 'wait' instruction support

When EU executes 'wait' instruction, it stalls and sets notification
register state. Host can issue MMIO write to clear notification
register state to allow EU continue on executing again.

Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
5dbbb48f46f99baeba3a24a8371029e216b931bb 13-Jun-2010 Zhenyu Wang <zhenyuw@linux.intel.com> i965: Use the new message header format for FF_SYNC on gen6.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
881ec3a81455f8449d06429811107e1f955f2c60 13-Jun-2010 Zhenyu Wang <zhenyuw@linux.intel.com> i965: Add support for math instructions in the gen6 WM.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
81951393e1e675d6ca3ea052875def70d5e7ab93 14-May-2010 Eric Anholt <eric@anholt.net> i965: Remove constant or ignored-by-hw args from FF sync message setup.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
cdcef6cbf4dd80047819e9098e34a3b98bd502a4 19-Apr-2010 Zhenyu Wang <zhenyuw@linux.intel.com> intel: Clean up chipset name and gen num for Ironlake

Rename old IGDNG to Ironlake, and set 'gen' number for
Ironlake as 5, so tracking the features with generation num
instead of special is_ironlake flag.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
a9acde6a723c8f343f65243d1ccac6836215ba0c 19-Mar-2010 Eric Anholt <eric@anholt.net> i965: Ignore execution mask for the mov(m0, g0) of VS URB write header on SNB.

Otherwise, we may not get the FFTID set up which would break freeing
of resources.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
56ff30a9f97a1a7094432333906544d6138d6bf2 10-Mar-2010 Eric Anholt <eric@anholt.net> i965: Use the PLN instruction when possible in interpolation.

Saves an instruction in PINTERP, LINTERP, and PIXEL_W from
brw_wm_glsl.c For non-GLSL it isn't used yet because the deltas have
to be laid out differently.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
dc8c0359448cdae7b367552ba58783c04b199778 10-Mar-2010 Eric Anholt <eric@anholt.net> i965: Set up the execution size before relying on it.

Fixes hangs with texturing in the non-GLSL path since
f6d210c284751ac50a8d6358de7e75a1ff1e4ac7
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
f6d210c284751ac50a8d6358de7e75a1ff1e4ac7 10-Mar-2010 Eric Anholt <eric@anholt.net> i965: Fix the response len of masked sampler messages for 8-wide dispatch.

The bad response length would hang the GPU with a masked sample in a
shader using control flow. For 8-wide, the response length is always
4, and masked slots are just not written to. brw_wm_glsl.c already
allocates registers in the right locations.

Fixes piglit glsl-fs-bug25902 (fd.o bug #25902).
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
839e6bd8b90a124e88020d54ded46460b2a3bc2d 26-Feb-2010 Eric Anholt <eric@anholt.net> i965: Try to hook up the Sandybridge URB_WRITE SEND message.

My units still hang when doing this if the VS is enabled.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
38c449409207c8948c1961a3132475bbd422f8f1 24-Feb-2010 Eric Anholt <eric@anholt.net> i965: Add SNB math opcode support.

This is untested at this point.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
298be2b028263b2c343a707662c6fbfa18293cb2 19-Feb-2010 Kristian Høgsberg <krh@bitplanet.net> Replace the _mesa_*printf() wrappers with the plain libc versions
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
25024d948298a9f3f3210a0b91486f79a3917b0f 31-Dec-2009 Brian Paul <brianp@vmware.com> Merge branch 'mesa_7_7_branch'

Conflicts:
configs/darwin
src/gallium/auxiliary/util/u_clear.h
src/gallium/state_trackers/xorg/xorg_exa_tgsi.c
src/mesa/drivers/dri/i965/brw_draw_upload.c
c67bb15d4e3da430d511444bd7d159ccb0c84b73 29-Dec-2009 Vinson Lee <vlee@vmware.com> intel: Silence compiler warnings.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
d0b7ff551ab25153e3023871af3daa65b394a828 27-Dec-2009 Brian Paul <brianp@vmware.com> Merge branch 'mesa_7_6_branch' into mesa_7_7_branch

Conflicts:
src/gallium/auxiliary/util/u_network.c
src/gallium/auxiliary/util/u_network.h
src/gallium/drivers/i915/i915_state.c
src/gallium/drivers/trace/tr_rbug.c
src/gallium/state_trackers/vega/bezier.c
src/gallium/state_trackers/vega/vg_context.c
src/gallium/state_trackers/xorg/xorg_crtc.c
src/gallium/state_trackers/xorg/xorg_driver.c
src/gallium/winsys/xlib/xlib_brw_context.c
src/mesa/main/mtypes.h
2447786ed00a19466c9cc9b9efbfa084e88114eb 25-Dec-2009 Vinson Lee <vlee@vmware.com> i965: Fix assert.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
0b87f143c466f7e5bd730895ee29f1cd20a68f9b 17-Dec-2009 Eric Anholt <eric@anholt.net> intel: Replace IS_G4X() across the driver with context structure usage.

Saves ~2KB of code.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
1c96e85c9d6b8c636b0636f3320d1057ab5357b3 16-Dec-2009 Eric Anholt <eric@anholt.net> intel: Replace IS_IGDNG checks with intel->is_ironlake or needs_ff_sync.

Saves ~480 bytes of code.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
8baee3d25beb616f6d5ba575684e889d60e38740 07-Nov-2009 Eric Anholt <eric@anholt.net> i965: Use Compr4 instruction compression mode on G4X and newer.

No statistically significant performance difference at n=3 with either
openarena or my GL demo, but cutting program size seems like a good
thing to be doing for the hypothetical app that has a working set near
icache size.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
011244853b538a1a5adf602c8ed2de5c0f047548 05-Aug-2009 Eric Anholt <eric@anholt.net> i965: Don't set pop_count in the reserved MBZ area of IF statements.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
b010814e9c7ed30cbdd60a49d81a6ea774c8c3a3 04-Aug-2009 Eric Anholt <eric@anholt.net> i965: Spell "conditional" correctly.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
868aa160745ed0b3f1a83353ef2f3a8fcb5d235e 15-Jul-2009 Xiang, Haihao <haihao.xiang@intel.com> i965: the offset of any branch/jump instruction is in unit of 64bits on IGDNG
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
2995bf0d68f1b28ba68b81e9dc79e3ab52bc2795 13-Jul-2009 Xiang, Haihao <haihao.xiang@intel.com> i965: add support for new chipsets

1. new PCI ids
2. fix some 3D commands on new chipset
3. fix send instruction on new chipset
4. new VUE vertex header
5. ff_sync message (added by Zou Nan Hai <nanhai.zou@intel.com>)
6. the offset in JMPI is in unit of 64bits on new chipset
7. new cube map layout
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
73137997e23ff6c1145d036315d1a9ad96651281 02-Jul-2009 Xiang, Haihao <haihao.xiang@intel.com> i965: fixes for JMPI

1. the data type of <src1> (JMPI offset) must be D
2. execution size must be 1
3. NoMask
4. instruction compression isn't allowed.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
1b6ae2e004b7a7a76508e0da3c45eb0d851ed10c 01-Jul-2009 Brian Paul <brianp@vmware.com> i965: use BRW_MAX_MRF
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
4fdc6ad41b843109febbe9596dde87f676a8b0e9 26-Jun-2009 Roland Scheidegger <sroland@vmware.com> i965: fix fetching constants from constant buffer in glsl path

the driver used to overwrite grf0 then use implicit move by send instruction
to move contents of grf0 to mrf1. However, we must not overwrite grf0 since
it's still used later for fb write.
Instead, do the move directly do mrf1 (we could use implicit move from another
grf reg to mrf1 but since we need a mov to encode the data anyway it doesn't
seem to make sense).
I think the dp_READ/WRITE_16 functions may suffer from the same issue.
While here also remove unnecessary msg_reg_nr parameter from the dataport
functions since always message register 1 is used.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
0bc214a834bbb12b9338837dd9fca9bc389b4bc2 18-Apr-2009 Brian Paul <brianp@vmware.com> i915: fix broken indirect constant buffer reads

The READ message's msg_control value can be 0 or 1 to indicate that the
Oword should be read into the lower or upper half of the target register.
It seems that the other half of the register gets clobbered though. So
we read into two dest registers then use a MOV to combine the upper/lower
halves.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
ee32e9b4753eca62e360f96ce61ef7ff683e6bb7 16-Apr-2009 Brian Paul <brianp@vmware.com> i965: implement relative addressing for VS constant buffer reads

A scatter-read should be possible, but we're just using two READs for
the time being.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
92cc9970039d9c9385dc472fbfac58b93799f5ae 15-Apr-2009 Brian Paul <brianp@vmware.com> i965: fix VS constant buffer reads

This mostly came down to finding the right MRF incantation in the
brw_dp_READ_4_vs() function.

Note: this feature is still disabled (but getting close to done).
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
cafea7528052624c8d3e4cd1c5b26a61bf04d1d0 14-Apr-2009 Brian Paul <brianp@vmware.com> i965: checkpoint commit: VS constant buffers

Hook up a constant buffer, binding table, etc for the VS unit.
This will allow using large constant buffers with vertex shaders.
The new code is disabled at this time (use_const_buffer=FALSE).
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
2078e6cf55e3068454df9d843618b412b6abb811 10-Apr-2009 Brian Paul <brianp@vmware.com> i965: new SURF_INDEX_ macros

Used to map drawables, textures and constant buffers to surface binding
table indexes.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
8131123effd2124b8ca2aad04bf543e2fe82c7b0 09-Apr-2009 Brian Paul <brianp@vmware.com> i965: set BRW_MASK_DISABLE flag in "send" instruction in brw_dp_READ_4()

This fixes the random results that were seen when fetching a constant
inside an IF/ELSE clause. Disabling the execution mask ensures that all
the components of the register are written.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
a330a6fcd0b018829194ffab260f50956bce4832 02-Apr-2009 Brian Paul <brianp@vmware.com> i965: s/GL_FALSE/BRW_COMPRESSION_NONE/
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
30adf0518168ded9c7f519a7c772cab728852b1f 01-Apr-2009 Brian Paul <brianp@vmware.com> i965: fix response length param in brw_dp_READ_4()

We were accidentally clobbering the next register.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
8127e49b93820d1768e2d298bbe238dd55c20732 31-Mar-2009 Brian Paul <brianp@vmware.com> i965: added new brw_dp_READ_4() function

Used to read float[4] vectors from the constant buffer/surface.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
6b18a8d3e7114a1af931a2fc20a1e23cb2d7789c 31-Mar-2009 Brian Paul <brianp@vmware.com> i965: new and updated comments
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
1146d40b9c35d80c0860c773de1eef27c76e8c01 25-Mar-2009 Brian Paul <brianp@vmware.com> i965: comments for brw_SAMPLE()
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
a10ec13143599344ecb4a486db1454b488cd9645 13-Mar-2009 Brian Paul <brianp@vmware.com> i965: add some register number assertions

Haven't seen failures yet, but if/when there are, more investigation will
be done.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
2f2082bf16ca86b8ebea9e04b77011f74d09c3db 12-Feb-2009 Brian Paul <brianp@vmware.com> i965: minor clean-ups
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
0d797365deb579cfeb2a32f21692515eb6904921 05-Jan-2009 Brian Paul <brianp@vmware.com> i965: implement OPCODE_TRUNC (round toward zero) on vertex path.

Also, fix some RNDD vs. RNDZ confusion elsewhere.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
34b1776e8d965605d12807884c9c447214d57281 02-Nov-2008 Eric Anholt <eric@anholt.net> i965: Merge GM45 into the G4X chipset define.

The mobile and desktop chipsets are the same, and having them separate is
more typing and more chances to screw up.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
72c914805b8b3b37bf8f44d94bc25ca3d146ac66 01-Nov-2008 Keith Packard <keithp@keithp.com> Fix for 58dc8b7: dest regions must not use HorzStride 0 in ExecSize 1

Quoting section 11.3.10, paragraph 10.2 of the 965PRM:

10.2. If ExecSize is 1, dst.HorzStride must not be 0. Note that this is
relaxed from rule 10.1.2. Also note that this rule for destination
horizontal stride is different from that for source as stated in
rule #7.

GM45 gets very angry when rule 10.2 is violated.

Patch 58dc8b7 (i965: support destination horiz strides in align1 access mode)
added support for additional horizontal strides in the ExecSize 1 case, but
failed to notice that mesa occasionally re-purposes a register as a
temporary destination, even though it was constructed as a repeating source
with HorzStride = 0.

While, ideally, we should probably fix the code using these register
specifications, this patch simply rewrites them to use HorzStride 1 as the
pre-58dc8b7 code did.

Signed-off-by: Keith Packard <keithp@keithp.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
58dc8b7db5829188dbb45c020ab44732d6053888 30-Oct-2008 Gary Wong <gtw@gnu.org> i965: support destination horiz strides in align1 access mode.

This is required for scatter writes in destination regions to work.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
7a2ab6d05573508389b38f8f1fa261ba56062865 29-Aug-2008 Xiang, Haihao <haihao.xiang@intel.com> i965: force thread switch after IF/ELSE/ENDIF. partial fix for #16882.

A thread switch is implicitly invoked after the issuance of an IF/ELSE/ENDIF
instruction if necessary. Unfortunately it seems sometimes a forced thread
switch is needed.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
6073b49c7915147c28e9887039a51b8e4e2e62c5 29-Aug-2008 Xiang, Haihao <haihao.xiang@intel.com> i965: mask control for BREAK/CONT/DO/WHILE. partial fix fox #16882
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
92c075eeb7c330ea420400d1c2bae57356b19f03 08-Jul-2008 Xiang, Haihao <haihao.xiang@intel.com> i965: official name for GM45 chipset
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
8e444fb9e2685e3eac42beb848b08e91dc20c88a 29-Jan-2008 Xiang, Haihao <haihao.xiang@intel.com> i965: new integrated graphics chipset support
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
46e03d584a18b89fef956fed3d52e15775846250 27-Nov-2007 Xiang, Haihao <haihao.xiang@intel.com> i965: The jump instruction count is added
to IP pre-increment, and should point to
the first instruction after the do instruction
of the do-while block of code
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
b0b48798c7e854d2e36e0317bf94b7385e815242 29-Sep-2007 Zou Nan hai <nanhai.zou@intel.com> support continue, fix conditional
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
d19d0596daf004b56d80f78fa1a329b43c2ebf94 21-Jun-2007 Zou Nan hai <nanhai.zou@intel.com> support branch and loop in pixel shader
most of the sample working with some small modification
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
35707dbe57873adb5a8088cd47c13bd216e143e4 12-Apr-2007 Zou Nan hai <nanhai.zou@intel.com> Initial 965 GLSL support
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
1b9f78195f62959601d440475a6cbba5e8046813 18-Oct-2006 Eric Anholt <eric@anholt.net> i965: Avoid branch instructions while in single program flow mode.

There is an errata for Broadwater that threads don't have the instruction/loop
mask stacks initialized on thread spawn. In single program flow mode, those
stacks are not writable, so we can't initialize them. However, they do get
read during ELSE and ENDIF instructions. So, instead, replace branch
instructions in single program flow mode with predicated jumps (ADD to the ip
register), avoiding use of the more complicated branch instructions that may
fail. This is also a minor optimization as no ENDIF equivalent is necessary.

Signed-off-by: Keith Packard <keithp@neko.keithp.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
db0e53af74beafa0ba07b200396bfe12fa9f5c89 01-Sep-2006 Keith Whitwell <keith@tungstengraphics.com> fix a couple of cases where a message reg is used as an instruction source.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c
9f344b3e7d6e23674dd4747faec253f103563b36 09-Aug-2006 Eric Anholt <anholt@FreeBSD.org> Add Intel i965G/Q DRI driver.

This driver comes from Tungsten Graphics, with a few further modifications by
Intel.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_eu_emit.c