Commit graph

39049 commits

Author SHA1 Message Date
Luca Barbieri
a47539c7a1 glsl: add pass to lower variable array indexing to conditional assignments
Currenly GLSL happily generates indirect addressing of any kind of
arrays.

Unfortunately DirectX 9 GPUs are not guaranteed to support any of them in
general.

This pass fixes that by lowering such constructs to a binary search on the
values, followed at the end by vectorized generation of equality masks, and
4 conditional assignments for each mask generation.

Note that this requires the ir_binop_equal change so that we can emit SEQ
to generate the boolean masks.

Unfortunately, ir_structure_splitting is too dumb to turn the resulting
constant array references to individual variables, so this will need to
be added too before this pass can actually be effective for temps.

Several patches in the glsl2-lower-variable-indexing were squashed
into this commit.  These patches fix bugs in Luca's original
implementation, and the individual patches can be seen in that branch.
This was done to aid bisecting in the future.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-09-17 10:58:58 +02:00
Dave Airlie
dab2a7660a r600g: oops got the use_mem_constant the wrong way around.
this fixes evergreen gears again.
2010-09-18 00:28:06 +10:00
Dave Airlie
d0502297e0 r600g: use calloc for ctx bo allocations
since the reference code relies on these being NULL.
2010-09-17 15:29:32 +10:00
Dave Airlie
3ddc714b20 r600g: fixup map flushing.
long lived maps were getting removed when they shouldn't this
tries to avoid that problem by only adding to the flush list
on unmap.
2010-09-17 15:29:32 +10:00
Dave Airlie
0d76bb5d4c r600g: add upload manager support.
this add support for the upload manager for uploading user vbo/index buffers.

this provides a considerable speedup in q3 type games.
2010-09-17 15:29:31 +10:00
Dave Airlie
a927d0477a r600g: add winsys bo caching.
this adds the bo caching layer and uses it for vertex/index/constant bos.

ctx needs to take references on hw bos so the flushing works okay, also
needs to flush the maps.
2010-09-17 15:29:31 +10:00
Dave Airlie
da96313afe r600g: add support for kernel bo
this moves to using a pb bufmgr instead of kernel bos directly.
2010-09-17 15:29:31 +10:00
Dave Airlie
189a597513 r600g: use malloc bufmgr for constant buffers 2010-09-17 15:29:31 +10:00
Dave Airlie
7c1fcc41be r600g: move constant buffer creation behind winsys abstraction.
this paves the way for moving to pb bufmgrs now.
2010-09-17 15:29:31 +10:00
Chia-I Wu
0dbcf3b014 libgl-xlib: Remove unused st_api_create_OpenGL.
st/egl no longer relies on libGL for OpenGL support.
2010-09-17 12:54:26 +08:00
Chia-I Wu
cadc4ad963 targets/egl: Use C++ compiler to link GL/ES state trackers.
Otherwise, applications compiled with C compiler might have trouble
using them.
2010-09-17 12:54:03 +08:00
Francisco Jerez
82c4af33b0 dri/nv10: Fix the CLAMP texture wrap mode. 2010-09-17 05:34:32 +02:00
Brian Paul
4b27c614cf tgsi/sse: fix aos_to_soa() loop to handle num_inputs==0
Basically, change the loop from:
  do {...} while (--num_inputs != 0)
into:
  while (num_inputs != 0) { ... --num_inputs; }

Fixes fd.o bug 29987.
2010-09-16 19:05:09 -06:00
Dave Airlie
f70f79f6f6 r600g: attempt to abstract kernel bos from pipe driver.
introduce an abstraction layer between kernel bos and the winsys BOs.

this is to allow plugging in pb manager with minimal disruption to pipe driver.
2010-09-17 10:57:49 +10:00
Dave Airlie
ec9d838aa5 r600g: hide radeon_ctx inside winsys.
no need for this info to be exported to pipe driver.
2010-09-17 10:57:44 +10:00
Vinson Lee
b54d10b62e gallivm: Remove unnecessary header. 2010-09-16 15:34:24 -07:00
Brian Paul
7aadd5ecb5 gallivm: fix wrong return value in bitwise functions 2010-09-16 20:20:49 +01:00
José Fonseca
6d173da5c8 gallivm: Clamp indirect register indices to file_max.
Prevents crashes with bogus data, or bad shader translation.
2010-09-16 20:20:49 +01:00
José Fonseca
795eb3d64a gallivm: Start collecting bitwise arithmetic helpers in a new module. 2010-09-16 20:20:49 +01:00
José Fonseca
3d5b9c1f2d gallivm: Fix address register swizzle.
We're actually doing a double swizzling:

  indirect_reg->Swizzle[indirect_reg->SwizzleX]

instead of simply

  indirect_reg->SwizzleX
2010-09-16 20:20:49 +01:00
Francisco Jerez
50ac56bf98 meta: Don't bind the created texture object in init_temp_texture().
This function is executed outside _mesa_meta_begin/end(), that means
that e.g. _mesa_meta_Bitmap() clobbers the texturing state because it
changes the currently active texture object.

There's no need to bind the new texture when it's created, it's done
again later anyway (from setup_drawpix/copypix_texture()).

Signed-off-by: Brian Paul <brianp@vmware.com>
2010-09-16 13:00:57 -06:00
Brian Paul
3a6f9d0f47 mesa: include mfeatures.h in formats.c
Otherwise, FEATURE_EXT_texture_sRGB was undefined.
This is (part of?) the fix for fd.o bug 30177.
2010-09-16 12:41:51 -06:00
Marek Olšák
d4b2de13bc r300g/swtcl: fix CS overrun
https://bugs.freedesktop.org/show_bug.cgi?id=29901
2010-09-16 20:33:43 +02:00
Francisco Jerez
db94a2a5be dri/nouveau: Cleanup references to the old FBOs on glMakeCurrent(). 2010-09-16 19:44:22 +02:00
Francisco Jerez
d4d81ed02e dri/nouveau: Don't reemit the BO state in nouveau_state_emit(). 2010-09-16 19:44:22 +02:00
Francisco Jerez
bfc7518ab9 dri/nouveau: Don't request a fake front unnecessarily. 2010-09-16 19:44:22 +02:00
Francisco Jerez
39658f32ea dri/nouveau: Fix glRenderbufferStorage with DEPTH_COMPONENT as internal format. 2010-09-16 19:44:22 +02:00
Francisco Jerez
cbe0dd0f5a dri/nouveau: Add some more extensions. 2010-09-16 19:44:22 +02:00
Francisco Jerez
aad06c8524 dri/nouveau: Update nouveau_class.h. 2010-09-16 19:44:21 +02:00
Francisco Jerez
8f1051dca2 dri/nv04: Fix provoking vertex. 2010-09-16 19:44:21 +02:00
Francisco Jerez
286d8f2877 dri/nv04: Fix maximum texture size. 2010-09-16 19:44:21 +02:00
Francisco Jerez
7b06fdbd33 dri/nv04: Fix up color mask. 2010-09-16 19:44:21 +02:00
Francisco Jerez
0a6cfa1668 dri/nv04: Align SIFM transfer dimensions. 2010-09-16 19:44:21 +02:00
Francisco Jerez
bec626ff63 dri/nv04: Mipmapping fixes. 2010-09-16 19:44:21 +02:00
Francisco Jerez
aa317a40ce dri/nv04: Fix PGRAPH_ERRORs when running OA. 2010-09-16 19:44:21 +02:00
Andrew Randrianasulu
c344f27539 dri/nv04: Enable eng3dm for A8/L8 textures.
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
2010-09-16 19:44:20 +02:00
Andrew Randrianasulu
a27bfb991c dri/nv04: Don't expose ARB_texture_env_combine/dot3.
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
2010-09-16 19:44:20 +02:00
Keith Whitwell
0986355425 llvmpipe: add DEBUG_FS to dump variant information 2010-09-16 17:34:58 +01:00
Keith Whitwell
5f00819cb3 llvmpipe: add LP_PERF flag to disable various aspects of rasterization
Allows disabling various operations (mainly texture-related, but
will grow) to try & identify bottlenecks.

Unlike LP_DEBUG, this is active even in release builds - which is
necessary for performance investigation.
2010-09-16 17:34:19 +01:00
Keith Whitwell
045ee46011 gallivm: make lp_build_sample_nop public 2010-09-16 17:04:01 +01:00
Brian Paul
7640151c3d gallivm: move i32_vec_type inside the #ifdef 2010-09-16 09:00:54 -06:00
Brian Paul
3c9f4c7b75 gallivm: fix incorrect vector shuffle datatype
The permutation vector must always be a vector of int32 values.
2010-09-16 08:56:34 -06:00
Christoph Bumiller
3a62365f40 nv50: get shader fixups/relocations into working state 2010-09-16 14:49:23 +02:00
Christoph Bumiller
e0aa7e0438 nv50: don't segfault on shaders with 0 instructions 2010-09-16 14:49:20 +02:00
Kenneth Graunke
8fbe968a62 glsl: Don't print blank (function ...) headers for built-ins.
Fixes a regression caused when I added my GLSL ES support.
2010-09-16 03:09:25 -07:00
Kenneth Graunke
81f0339398 glsl: Change from has_builtin_signature to has_user_signature.
The print visitor needs this, and the only existing user can work with
has_user_signature just as well.
2010-09-16 02:52:25 -07:00
Tilman Sauerbeck
df62338c49 r600g: Use clamped math for RCP and RSQ.
This is likely only correct for OpenGL and not other state trackers.

Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
2010-09-16 11:08:00 +02:00
Tilman Sauerbeck
2108caac25 r600g: Fixed a bo leak in r600_blit_state_ps_shader().
We would leak the newly created bo if it cannot be mapped.

Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
2010-09-16 11:07:32 +02:00
Chia-I Wu
03224f492d st/xlib: Notify the context when the front/back buffers are swapped.
The current context should be notified when the the front/back buffers
of the current drawable are swapped.  The notification was skipped when
xmesa_strict_invalidate is false (the default).

This fixes fdo bug #29774.
2010-09-16 13:09:48 +08:00
Chia-I Wu
9ca59b2427 mesa: Update ES APIspec.xml.
Enable some extensions now that the needed tokens are defined in
GLES/glext.h and GLES2/glext.h.  Update the prototype of MultiDrawArrays
now that the prototype of _mesa_MultiDrawArraysEXT has been updated.
2010-09-16 13:09:01 +08:00