Commit graph

35825 commits

Author SHA1 Message Date
Eric Anholt
ae0df25ab4 i965: Don't smash a group of coordinates doing gen6 16-wide sampler headers. 2010-12-06 00:14:22 -08:00
Eric Anholt
d1ead22d1b i965: Fix up 16-wide gen6 FB writes after various refactoring. 2010-12-06 00:14:22 -08:00
Eric Anholt
ad35528944 i965: Provide delta_xy reg to gen6 non-GLSL path PINTERP.
Fixes many assertion failures in that path.
2010-12-06 00:14:22 -08:00
Eric Anholt
16f8c82389 i965: Move payload reg setup to compile, not lookup time.
Payload reg setup on gen6 depends more on the dispatch width as well
as the uses_depth, computes_depth, and other flags.  That's something
we want to decide at compile time, not at cache lookup.  As a bonus,
the fragment shader program cache lookup should be cheaper now that
there's less to compute for the hash key.
2010-12-06 00:14:22 -08:00
Chia-I Wu
8f2a974cf2 mapi: Rewrite mapi_abi.py to get rid of preprocessor magic.
The preprocessor magic in mapi was nothing but obfuscation.  Rewrite
mapi_abi.py to generate real C code.

This commit removes the hack added in
43121f2086.
2010-12-06 15:40:37 +08:00
Chia-I Wu
5ae4b6693a egl: _eglFilterArray should not allocate.
Otherwise, when it is called from within a driver, the caller cannot
free the returned data (on Windows).
2010-12-06 15:40:37 +08:00
Zhenyu Wang
2b1469340b i965: Fix GS state uploading on Sandybridge
Need to check the required primitive type for GS on Sandybridge,
and when GS is disabled, the new state has to be issued too, instead
of only updating URB state with no GS entry, that caused hang on Sandybridge.

This fixes hang issue during conformance suite testing.
2010-12-06 15:20:48 +08:00
Xiang, Haihao
08be8d6450 i965: fix for flat shading on Sandybridge
use constant interpolation instead of linear interpolation for
attributes COL0,COL1 if GL_FLAT is used. This fixes mesa demo bounce.
2010-12-06 09:42:28 +08:00
Henri Verbeet
4409435614 r600g: Cleanup fetch shader resources in r600_pipe_shader_destroy(). 2010-12-05 18:44:44 +01:00
Henri Verbeet
308cfb80f5 r600g: Cleanup block bo references in r600_context_fini(). 2010-12-05 18:44:44 +01:00
Marek Olšák
c0c929cdac st/mesa: initialize key in st_vp_varient
This fixes endless vertex shader recompilations in find_translated_vp
if the shader contains an edge flag output.

NOTE: This is a candidate for the 7.9 branch.

Signed-off-by Brian Paul <brianp@vmware.com>
2010-12-05 17:38:19 +01:00
Xavier Chantry
ccacabe86c gallium/trace: check bind_vertex_sampler_states and set_vertex_sampler_views
Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
Reviewed-by: Jakob Bornecrantz <wallbraker at gmail.com>
Signed-off-by: Patrice Mandin <patmandin@gmail.com>
2010-12-05 12:12:25 +01:00
Xavier Chantry
e3256ccb04 init ps->context with util_surfaces_get and do_get
Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
Reviewed-by: Jakob Bornecrantz <wallbraker at gmail.com>
Signed-off-by: Patrice Mandin <patmandin@gmail.com>
2010-12-05 12:09:38 +01:00
Xavier Chantry
af5345d937 nvfx: fixes after array textures merge
Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
Signed-off-by: Patrice Mandin <patmandin@gmail.com>
2010-12-05 12:08:00 +01:00
Marek Olšák
66d45567b4 r300g: optimize looping over atoms
This also removes DBG_STATS (the stats can be obtained with valgrind instead).
2010-12-05 05:52:25 +01:00
Marek Olšák
6947e52548 r300g: cleanup winsys 2010-12-05 05:47:10 +01:00
Dave Airlie
c1365606c5 r300g: try and use all of vertex constant space
Finished up by Marek Olšák.

We can set the constant space to use a different area per-call to the shader,
we can avoid flushing the PVS as often as we do by spreading out the constants
across the whole constant space.

Signed-off-by: Marek Olšák <maraeo@gmail.com>
2010-12-05 05:47:03 +01:00
Marek Olšák
1774273bde r300g: do not use the index parameter in set_constant_buffer
It appears to be a constant buffer index (in case there are more constant
buffers explicitly used by a shader), i.e. something that Gallium currently
does not use. We treated it incorrectly as the offset to a constant buffer.
2010-12-05 05:46:56 +01:00
Vinson Lee
e72651dc5d gallium/noop: Add prototype for noop_init_state_functions.
Silences this GCC warning.
noop_state.c:247: warning: no previous prototype for
'noop_init_state_functions'
2010-12-04 17:30:08 -08:00
Eric Anholt
afb80c5315 i965: Fix compile warning about missing opcodes. 2010-12-04 16:27:57 -08:00
Eric Anholt
8f23039f00 i965: Update gen6 SF state on fragment program change too.
SF state depends on what inputs there are to the fragment program, not
just the outputs of the VS.
2010-12-04 16:26:55 -08:00
Eric Anholt
65570d0482 i965: Update gen6 WM state on compiled program change, not just FP change. 2010-12-04 16:26:55 -08:00
Eric Anholt
4ac2f09e20 intel: Add an env var override to execute for a different GPU revision.
Sometimes I'm on the train and want to just read what's generated
under INTEL_DEBUG=vs,wm for some code on another generation.  Or, for
the next gen enablement we'll want to dump aub files before we have
the actual hardware.  This will let us do that.
2010-12-04 16:26:55 -08:00
Chia-I Wu
859106f196 st/vega: Fix pipe blend state for various blend modes.
rgb_src_factor and rgb_dst_factor should be PIPE_BLENDFACTOR_ONE for
VG_BLEND_SRC_IN and VG_BLEND_DST_IN respectively.  VG_BLEND_SRC_OVER can
be supported only when the fb has no alpha channel.  VG_BLEND_DST_OVER
and VG_BLEND_ADDITIVE have to be supported with a shader.

Note that Porter-Duff blending rules assume premultiplied alpha.
2010-12-04 23:46:38 +08:00
Chia-I Wu
0ee73edecc st/vega: Add blend shaders for all blend modes. 2010-12-04 23:41:35 +08:00
Chia-I Wu
5d24411140 st/vega: Fix VG_BLEND_MULTIPLY.
TEMP[1].w will be needed for OUT.w just below.  Use TEMP[0] to store the
intermediate value.
2010-12-04 23:41:30 +08:00
Vinson Lee
09fba30fde mesa: Clean up header file inclusion in texobj.h. 2010-12-04 01:29:50 -08:00
Vinson Lee
f657ac951d mesa: Clean up header file inclusion in texgetimage.h. 2010-12-04 01:20:28 -08:00
Vinson Lee
0ed245bd57 mesa: Clean up header file inclusion in texformat.h. 2010-12-04 01:11:33 -08:00
Vinson Lee
f8a9f5458b mesa: Clean up header file inclusion in texenvprogram.h. 2010-12-04 01:03:52 -08:00
Vinson Lee
f618f4549a mesa: Clean up header file inclusion in texcompress_s3tc.h. 2010-12-04 01:00:21 -08:00
Vinson Lee
8aa4cd0e50 st/vega: Silence uninitialized variable warning.
Fixes this GCC warning.
api_filters.c: In function 'execute_filter':
api_filters.c:184: warning: 'tex_wrap' may be used uninitialized in this function
2010-12-04 00:53:44 -08:00
Vinson Lee
3132591a4d mesa: Clean up header file inclusion in texcompress.h. 2010-12-04 00:52:14 -08:00
Chia-I Wu
e87a0cd260 st/vega: Blending should use premultiplied alpha.
Convert color values to and back from premultiplied form for blending.
Finally the rendering result of the blend demo looks much closer to that
of the reference implementation.
2010-12-04 15:44:40 +08:00
Chia-I Wu
e8ff3931f8 st/vega: Add support for per-channel alpha.
Drawing an image in VG_DRAW_IMAGE_STENCIL mode produces per-channel
alpha for use in blending.  Add a new shader stage to produce and save
it in TEMP[1].

For other modes that do not need per-channel alpha, the stage does

  MOV TEMP[1], TEMP[0].wwww
2010-12-04 13:20:38 +08:00
Chia-I Wu
a19eaaa6c1 st/vega: Move masking after blending.
Masking should happen after blending.  The shader is not entirely
correct, but leave it as is for now.
2010-12-04 13:20:38 +08:00
Chia-I Wu
3b4c888653 st/vega: Refactor blend shaders.
Add a helper function, blend_generic, that supports all blend modes and
per-channel alpha.  Make other blend generators a wrapper to it.

Both the old and new code expects premultiplied colors, yet the input is
non-premultiplied.  Per-channel alpha is also not used for stencil
image.  They still need to be fixed.
2010-12-04 13:20:32 +08:00
Chia-I Wu
a09baf1668 st/vega: Add some comments to pipeline shaders. 2010-12-04 13:19:29 +08:00
Brian Paul
6c33e820d5 st/mesa: new comment about updating state vars 2010-12-03 17:07:16 -07:00
Brian Paul
64244dfd39 mesa: update comments, remove dead code 2010-12-03 16:45:44 -07:00
Brian Paul
6f851e6642 mesa: remove unneeded cast 2010-12-03 16:40:36 -07:00
Brian Paul
503983b09e mesa: make glGet*(GL_NONE) generate GL_INVALID_ENUM
In find_value() check if we've hit the 0th/invalid entry before checking
if the pname matches.

Fixes http://bugs.freedesktop.org/show_bug.cgi?id=31987

NOTE: This is a candidate for the 7.9 branch.
2010-12-03 16:04:26 -07:00
Brian Paul
40ee69b4f3 swrast: restructure some glReadPixels() code 2010-12-03 15:26:31 -07:00
Brian Paul
5fc2548fae swrast: accept GL_RG in glReadPixels()
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=32088
2010-12-03 15:26:31 -07:00
Kenneth Graunke
b7acf538af ir_print_visitor: Print out constant structure values.
In the form (constant type ((field1 value) (field2 value) ...))
2010-12-03 13:59:21 -08:00
Brian Paul
8d6a0dc7f3 swrast: fix indentation 2010-12-03 14:49:19 -07:00
Brian Paul
75746e3779 swrast: allow GL_RG format in glDrawPixels()
Restructure the switch statement to avoid having to add additional
color formats in the future.

Fixes http://bugs.freedesktop.org/show_bug.cgi?id=32086
2010-12-03 14:48:03 -07:00
Brian Paul
b87369e863 mesa: consolidate some compiler -D flags
-D__STDC_CONSTANT_MACROS and -D__STDC_LIMIT_MACROS are only needed for
LLVM build.
2010-12-03 13:52:59 -07:00
Marek Olšák
9f7f093090 r300g: one more r500_index_bias_supported leftover 2010-12-03 20:59:55 +01:00
Marek Olšák
536d527020 r300g: add capability bit index_bias_supported
.. instead of calling r500_index_bias_supported(..) every draw call.
2010-12-03 20:34:56 +01:00