Commit graph

42261 commits

Author SHA1 Message Date
Chad Versace
82f994f386 glsl: Set operators '%' and '%=' to be reserved when GLSL < 1.30
From section 5.9 of the GLSL 1.20 spec:
   The operator modulus (%) is reserved for future use.

From section 5.8 of the GLSL 1.20 spec:
   The assignments modulus into (%=), left shift by (<<=), right shift by
   (>>=), inclusive or into ( |=), and exclusive or into ( ^=). These
   operators are reserved for future use.

The GLSL ES 1.00 spec and GLSL 1.10 spec have similiar language.

Fixes bug:
https://bugs.freedesktop.org//show_bug.cgi?id=33916

Fixes Piglit tests:
spec/glsl-1.00/compiler/arithmetic-operators/modulus-00.frag
spec/glsl-1.00/compiler/assignment-operators/modulus-assign-00.frag
spec/glsl-1.10/compiler/arithmetic-operators/modulus-00.frag
spec/glsl-1.10/compiler/assignment-operators/modulus-assign-00.frag
spec/glsl-1.20/compiler/arithmetic-operators/modulus-00.frag
spec/glsl-1.20/compiler/assignment-operators/modulus-assign-00.frag
2011-02-08 09:37:03 -08:00
Marek Olšák
69e5516308 r600g: fixup assertion 2011-02-08 18:18:13 +01:00
Marek Olšák
71df812146 r600g: add a faster implementation of transfer_inline_write
u_default_transfer_inline_write uses util_copy_rect, which is kinda slow.
2011-02-08 17:47:00 +01:00
Marek Olšák
f0b202ec73 r600g: slab-allocate buffer and transfer structures 2011-02-08 17:30:39 +01:00
Marek Olšák
b541a3c4c0 r300g: use the same upload buffer for vertices and indices 2011-02-08 16:35:02 +01:00
Marek Olšák
467023e808 r600g: use the same upload buffer for vertices, indices, and constants
This should reduce memory consumption.
2011-02-08 16:35:02 +01:00
Thomas Hellstrom
8042470057 mesa/st: Plug a fragment program variant parameter leak
Fixes a minor memory leak with the "engine" mesa demo.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
2011-02-08 08:13:39 -07:00
Brian Paul
5cbff0932e st/mesa: free the temporary bitmap/drawpix shader code
Fixes a per-shader memory leak when drawing glBitmaps, glDrawPixels
or glCopyPixels.

NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-02-08 08:10:22 -07:00
Marek Olšák
1ee71bdc8a u_vbuf_mgr: add a way to specify the BIND flag for the upload buffer 2011-02-08 15:20:11 +01:00
Marek Olšák
7628c4ecb6 u_vbuf_mgr: remove tabs 2011-02-08 15:18:46 +01:00
Marek Olšák
f53cbf8bb0 u_vbuf_mgr: make the uploader public 2011-02-08 15:08:04 +01:00
Marek Olšák
d8d5c2660f Revert "r600g: do not flush the uploader" (with comments)
This reverts commit 1c2a4f0820.
2011-02-08 14:48:12 +01:00
Brian Paterni
4d78dafc84 r600g: silence a few valgrind warnings 2011-02-08 12:48:44 +01:00
Thomas Hellstrom
bb1036aae5 mesa/st: Fix vertex buffer leak
Make sure we unreference the vertex buffer pointers in a local array.
This fixes huge vertex buffer / memory leaks in mesa demos "fire" and "engine".

NOTE: This is a candidate for the 7.9 and 7.10 branches.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
2011-02-08 11:01:21 +01:00
Kristian Høgsberg
1e1b89103e wayland-egl: Add struct wl_egl_display argument to +wl_egl_window_create() 2011-02-07 20:50:18 -05:00
Henri Verbeet
077c448d18 r600g: Add support for relative addressing on constant buffers.
Relative addressing of constant buffers can't work properly through the
kcache, since you can only address within the currently locked kcache window.
Instead, this patch binds the constant buffer as a shader resource, and then
explicitly fetches the constant using a vertex fetch with fetch type
VTX_FETCH_NO_INDEX_OFFSET from the shader. There's probably still some room
for improvement, doing the fetch right before the instruction that needs the
value may not be quite optimal for example.
2011-02-07 15:22:08 +01:00
Henri Verbeet
871460eb14 r600g: Set the fetch type in r600_bc_vtx_build(). 2011-02-07 15:22:08 +01:00
Henri Verbeet
4c30a80e38 r600g: Handle the ADD_INT instruction in r600_bc_get_num_operands(). 2011-02-07 15:22:07 +01:00
Henri Verbeet
5c59eebfae r600g: Generalize the pipe_add_vertex_attrib() functions.
This allows them to be used for VS or PS buffer resources as well.
2011-02-07 15:22:07 +01:00
Henri Verbeet
b9fd1a1e4b r600g: Remove vs_resource and ps_resource from the pipe context.
These are practically unused, only the vs_resource array is being abused for
fetch shader resources.
2011-02-07 15:22:07 +01:00
Henri Verbeet
7687eabaa0 r600g: Split constants in r600_shader_from_tgsi(). 2011-02-07 15:22:07 +01:00
Henri Verbeet
1fa95c7f9e r600g: Do the tgsi_full_src_register to r600_shader_src conversion in r600_shader_from_tgsi(). 2011-02-07 15:22:07 +01:00
Henri Verbeet
a77e813de3 r600g: Split r600_bc_alu_src.
The r600_bc_alu_src structure is used in two different ways, as a vector and
for the individual channels of that same vector. This is somewhat fragile,
and probably confusing.
2011-02-07 15:22:07 +01:00
Henri Verbeet
3b1c1f0253 r600g: Store literal values in the r600_bc_alu_src structure.
This is much easier to work with, and allows use to get rid of some of the
literal handling hacks.
2011-02-07 15:22:07 +01:00
Henri Verbeet
80235d92e6 r600g: tgsi_dst() can't fail. 2011-02-07 15:22:07 +01:00
Henri Verbeet
d0f2ffad76 r600g: tgsi_src() can't fail. 2011-02-07 15:22:07 +01:00
Kristian Høgsberg
56758c839f wayland-egl: Force roundtrips to get device name and authenticate correctly
If the client hasn't done the initial wl_display_iterate() at the time
we initialize the display, we have to do that in platform_wayland.c.
Make sure we detect that correctly instead of dup()ing fd=0, and use
the sync callback to make sure we don't wait forever for authorization that
won't happen.
2011-02-07 14:01:31 +01:00
Benjamin Franzke
93aea84f47 egl_dri2: Add wayland platform 2011-02-07 14:01:31 +01:00
Benjamin Franzke
9630437fc9 egl_dri2: Export dri2_get_driver_for_fd 2011-02-07 14:01:31 +01:00
Benjamin Franzke
a8128d7d4b egl_dri2: Enable pixmap bind_to_texture according to the extension 2011-02-07 14:01:30 +01:00
Benjamin Franzke
381ea0d67a st/egl: Add wayland platform 2011-02-07 14:01:16 +01:00
Benjamin Franzke
9b6dc9b7a4 st/egl: drm_image: Check for MESA_drm_image
MESA_drm_image isnt limited to drm platform,
others can enable the extension too.
2011-02-07 13:55:29 +01:00
Benjamin Franzke
464cb3a09e st/egl: native_helper: Add resource_surface_import_resource 2011-02-07 13:55:29 +01:00
Benjamin Franzke
214fc6e850 egl: Implement libwayland-egl
This library is required and defined by wayland for
EGL implementations supporting wayland.
2011-02-07 13:55:20 +01:00
Benjamin Franzke
e586c4b763 egl: Add wayland platform 2011-02-07 13:52:29 +01:00
Benjamin Franzke
2adfde3aae intel: Implement dri2::{Allocate,Release}Buffer 2011-02-07 13:52:28 +01:00
Benjamin Franzke
f8e939a3a7 st/dri: Implement dri2::{Allocate,Release}Buffer 2011-02-07 13:52:28 +01:00
Benjamin Franzke
1b8ef9416b Add dri2::{Allocate,Release}Buffer extension 2011-02-07 13:52:28 +01:00
Marek Olšák
a22bda9f80 r600g: correctly report supported vertex formats 2011-02-07 03:51:53 +01:00
Marek Olšák
c95bc1224a r300g: use the new vertex buffer manager 2011-02-07 02:46:23 +01:00
Marek Olšák
aa8a2224a3 r600g: use the new vertex buffer manager 2011-02-07 02:46:17 +01:00
Marek Olšák
975320ab76 util: import a new vertex buffer manager
This code has originally matured in r300g and was ported to r600g several
times. It was obvious it's a code duplication.

See also comments in the header file.
2011-02-07 02:23:46 +01:00
Marek Olšák
1c2a4f0820 r600g: do not flush the uploader 2011-02-06 21:13:58 +01:00
Marek Olšák
529d867207 r300g: do not flush the uploader
We don't have to unmap and recreate the upload buffer when a flush occurs.
This should also prevent buffer allocations from failing.
2011-02-06 21:12:51 +01:00
Marek Olšák
ec96b0ecdb configure.ac: correctly check for libdrm_radeon version 2011-02-06 15:47:00 +01:00
Marek Olšák
4ad3b27cee r300g: RS400 doesn't have ZMASK 2011-02-06 15:46:51 +01:00
Dave Airlie
780c183b8f r600g: use surface format not underlying texture format
This uses the surface format to set the CB up not the underlying texture
format, since these can and do differ.

Fixes piglit fbo-srgb.
2011-02-06 19:00:04 +10:00
Tom Stellard
68b701f5de r300/compiler: Disable register rename pass on r500
The scheduler and the register allocator are not good enough yet to deal
with the effects of the register rename pass.  This was causing a 50%
performance drop in Lightsmark.  The pass can be re-enabled once the
scheduler and the register allocator are more mature.  r300 and r400
still need this pass, because it prevents a lot of shaders from using
too many texture indirections.

NOTE: This is a candidate for the 7.10 branch.
2011-02-05 22:39:58 -08:00
Tom Stellard
19202284c0 r300/compiler: Don't count BEGIN_TEX instructions in the compiler stats 2011-02-05 00:27:24 -08:00
Dave Airlie
88ffa9ce5b mesa/965: add support for GL_EXT_framebuffer_sRGB (v2)
This adds i965 support for GL_EXT_framebuffer_sRGB, it introduces a new
constant to say that the driver can support sRGB enabled FBOs since enabling
the extension doesn't mean the driver can actually support sRGB.

Also adds the suggested state flush in the core code suggested by Brian.

fix the ARB_fbo color encoding.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-02-05 17:06:30 +10:00