Keith Whitwell [Thu, 13 Aug 2009 11:46:32 +0000 (12:46 +0100)]
util: convert u_simple_shaders to use tgsi_ureg
Much nicer now.
Keith Whitwell [Thu, 13 Aug 2009 11:38:58 +0000 (12:38 +0100)]
tgsi: add tgsi_ureg, a simplified tgsi shader builder
This is modelled on the nice & easy-to-use facilities we had
for building shaders in mesa, eg. in texenvprogram.c and friends.
Key points include pass-by-value register structs that can be manipulated
in a functional style, eg:
negate(swizzle(reg, X,X,X,X))
and per-opcode instruction functions, eg:
emit_MOV( p, writemask(dst, 0x1), negate(src));
and similar.
Additionally, the interface allows mixed emit of instructions and decls,
which are sorted out internally to obey TGSI ordering.
Immediates may be emitted at any time and are scanned against existing
immediates to try and reduce redundancy.
Not all TGSI functionality is accessible through this interface, but
most or all of what mesa uses should be.
Xiang, Haihao [Thu, 13 Aug 2009 10:42:52 +0000 (18:42 +0800)]
i965: fix cube map on IGDNG
Brian Paul [Thu, 13 Aug 2009 02:37:34 +0000 (20:37 -0600)]
glsl: remove duplicate frag input entry
Brian Paul [Thu, 13 Aug 2009 02:32:41 +0000 (20:32 -0600)]
Merge branch 'new-frag-attribs'
This branch introduces new FRAG_ATTRIB_FACE and FRAG_ATTRIB_PNTC fragment
program inputs for GLSL gl_FrontFacing and gl_PointCoord. Before, these
attributes were packed with the FOG attribute. That made things
complicated elsewhere.
Brian Paul [Wed, 12 Aug 2009 23:25:49 +0000 (17:25 -0600)]
progs/glsl: change uniform_info::type field to use GLSL vector types
Brian Paul [Wed, 12 Aug 2009 22:17:18 +0000 (16:17 -0600)]
demos: call SetUniformValues()
Brian Paul [Wed, 12 Aug 2009 21:43:50 +0000 (15:43 -0600)]
mesa: const qualifiers
Brian Paul [Wed, 12 Aug 2009 21:42:51 +0000 (15:42 -0600)]
vbo: use _mesa_is_bufferobj()
Brian Paul [Wed, 12 Aug 2009 19:53:56 +0000 (13:53 -0600)]
demos: rename InitUniforms() to SetUniformValues()
And call new PrintUniforms() in demos.
Brian Paul [Wed, 12 Aug 2009 19:50:26 +0000 (13:50 -0600)]
progs/util: added more shader utility functions
Brian Paul [Wed, 12 Aug 2009 19:46:16 +0000 (13:46 -0600)]
mesa: use _mesa_is_bufferobj()
Brian Paul [Wed, 12 Aug 2009 19:46:03 +0000 (13:46 -0600)]
mesa: use _mesa_is_bufferobj()
Brian Paul [Wed, 12 Aug 2009 19:44:43 +0000 (13:44 -0600)]
mesa: new _mesa_is_bufferobj() function
Tests if the given buffer object is a user-created, non-default buffer object.
Use this instead of testing bufferobj->Name != 0.
Eric Anholt [Wed, 12 Aug 2009 20:49:06 +0000 (13:49 -0700)]
i965: Make the cube mapping RCP use a writemask.
Fixes cube mapping since the scalar changes.
Eric Anholt [Wed, 12 Aug 2009 20:17:15 +0000 (13:17 -0700)]
i965: Allocate destination registers for GLSL TEX instructions contiguously.
This matches brw_wm_pass*.c behavior, and fixes the norsetto shadow demo.
Bug #19489
Eric Anholt [Wed, 12 Aug 2009 20:00:23 +0000 (13:00 -0700)]
i965: drop dead scalar handling in GLSL.
Eric Anholt [Wed, 12 Aug 2009 19:54:43 +0000 (12:54 -0700)]
i965: Correct brw_wm_nr_args for WM_DELTAXY and WM_PIXELXY.
Eric Anholt [Wed, 12 Aug 2009 01:13:57 +0000 (18:13 -0700)]
i965: Drop GLSL ABS code, which is translated away in brw_wm_fp.
Eric Anholt [Tue, 11 Aug 2009 23:40:20 +0000 (16:40 -0700)]
i965: Drop code for emitting OPCODE_SUB, since brw_wm_fp.c makes it an ADD.
Eric Anholt [Tue, 11 Aug 2009 23:02:54 +0000 (16:02 -0700)]
i965: Store the dispatch width in the WM compile struct.
I'll be using this in merging brw_wm_emit.c and brw_wm_glsl.c
Eric Anholt [Wed, 12 Aug 2009 19:26:19 +0000 (12:26 -0700)]
i965: Handle scalar result swizzling in shared GLSL/non-GLSL code.
This is preparation for merging of brw_wm_glsl.c and
brw_wm_emit.c, and glsl.c doesn't swizzle channel results around.
Eric Anholt [Wed, 12 Aug 2009 18:36:07 +0000 (11:36 -0700)]
i965: Flag ARL-using programs as requiring brw_wm_glsl.c
This doesn't fix the glean testcase, but I guess it provides hope.
Eric Anholt [Wed, 12 Aug 2009 18:33:11 +0000 (11:33 -0700)]
i965: Remove some unused WM opcode args.
Eric Anholt [Tue, 11 Aug 2009 21:48:03 +0000 (14:48 -0700)]
i965: Avoid re-uploading the index buffer when we don't need to.
No performance difference proven at 95% confidence with my GLSL demo (n=10).
Alex Deucher [Wed, 12 Aug 2009 19:38:45 +0000 (15:38 -0400)]
r600: fix warning
Alex Deucher [Wed, 12 Aug 2009 19:34:24 +0000 (15:34 -0400)]
r600: state cleanups
Alex Deucher [Wed, 12 Aug 2009 18:49:07 +0000 (14:49 -0400)]
r600: clean up Create/DestroyContext
Pauli Nieminen [Tue, 4 Aug 2009 11:42:20 +0000 (14:42 +0300)]
r200: Prevent TexGenMatrix from leaking when destroying r200 context.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Brian Paul [Wed, 12 Aug 2009 19:16:41 +0000 (13:16 -0600)]
vbo: fix incorrect pointer
Brian Paul [Wed, 12 Aug 2009 18:31:57 +0000 (12:31 -0600)]
glsl: add gl_Vertex, gl_Normal, etc to list of active attributes
If a vertex shader uses gl_Vertex, gl_Normal, etc, we need to include them
when the user queries the list of active attributes. Before this we were
just including the user-defined attributes.
Brian Paul [Wed, 12 Aug 2009 18:27:35 +0000 (12:27 -0600)]
glsl: move predefined shader input/output info/code to slang_builtin.c
This is a more logical place for this code.
Also add some functions for querying vertex shader input names, types, etc.
Eric Anholt [Tue, 11 Aug 2009 19:31:01 +0000 (12:31 -0700)]
vbo: Avoid extra validation of DrawElements.
This saves mapping the index buffer to get a bounds on the indices that
drivers just drop on the floor in the VBO case (cache win), saves a bonus
walk of the indices in the CheckArrayBounds case, and other miscellaneous
validation. On intel it's a particularly a large win (50-100% in my app)
because even though we let the indices stay in both CPU and GPU caches, we
still end up waiting for the GPU to be done with the buffer before reading
from it.
Drivers that want the min/max_index fields must now check index_bounds_valid
and use vbo_get_minmax_index before using them.
Eric Anholt [Wed, 12 Aug 2009 18:12:46 +0000 (11:12 -0700)]
radeon: Minor warnings cleanup.
Eric Anholt [Tue, 11 Aug 2009 19:59:09 +0000 (12:59 -0700)]
i965: Use _MaxElement instead of index-calculated min/max for VBO bounds.
Pauli Nieminen [Thu, 30 Jul 2009 17:17:29 +0000 (20:17 +0300)]
radeon: Add protection against recursive DRM locking.
Reference counting protects DRM lock call from recursive locking that would
cause hang. Code also adds optional debugging output for recursive call that
is compiled only if NDEBUG is not defined.
This code is not 100% thread safe because mesa doesn't include increment and
test atomic operation. There is built-in gcc functions but they are only
available from gcc 4.2.
Michel Dänzer [Wed, 12 Aug 2009 17:11:11 +0000 (19:11 +0200)]
st/xorg: Acquire/drop DRM master in order to work with multiple servers.
Brian Paul [Wed, 12 Aug 2009 16:30:40 +0000 (10:30 -0600)]
gallium/glx/xlib: main/ prefix on Mesa includes, remove -I$(TOP)/src/mesa/main/
Brian Paul [Wed, 12 Aug 2009 16:24:44 +0000 (10:24 -0600)]
gallium/glx/xlib: updated comments
Brian Paul [Wed, 12 Aug 2009 16:22:23 +0000 (10:22 -0600)]
gallium/glx/xlib: delete fakeglx.h
Brian Paul [Wed, 12 Aug 2009 16:22:13 +0000 (10:22 -0600)]
gallium/glx/xlib: rename fakeglx.c to glx_api.c
Brian Paul [Wed, 12 Aug 2009 16:20:53 +0000 (10:20 -0600)]
gallium/glx/xlib: delete glxapi.h
Brian Paul [Wed, 12 Aug 2009 16:19:59 +0000 (10:19 -0600)]
gallium/glx/xlib: rename fakeglx_fonts.c to glx_usefont.c
Brian Paul [Wed, 12 Aug 2009 15:57:18 +0000 (09:57 -0600)]
gallium/glx/xlib: rename glxapi.c to glx_getproc.c
Brian Paul [Wed, 12 Aug 2009 15:56:45 +0000 (09:56 -0600)]
gallium/glx/xlib: don't include fakeglx.h
Brian Paul [Wed, 12 Aug 2009 15:51:56 +0000 (09:51 -0600)]
gallium/glx/xlib: overhaul and simplification of the Gallium Xlib-based GLX
The old GLX dispatch table stuff isn't needed (same story for the Mesa/Xlib
driver). The intention of that code was being able to switch on the fly
between the real GLX library and the fake/Xlib-based emulation. That hasn't
been used in a long time.
Next up: some file renaming.
Cooper Yuan [Wed, 12 Aug 2009 09:39:18 +0000 (17:39 +0800)]
r600: A shader is bound that exports Z as a float into Red channel
Chia-I Wu [Mon, 10 Aug 2009 08:45:12 +0000 (16:45 +0800)]
egl: Use _eglAddAtExitCall to free thread infos and displays.
Thread infos and displays are usually not freed by applications. This
commit add atexit calls to free them.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Mon, 10 Aug 2009 09:35:20 +0000 (17:35 +0800)]
egl: Add _eglAddAtExitCall.
Add a convenient wrapper to register atexit calls. Add mutex to
_eglGlobal along the way.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Mon, 10 Aug 2009 08:37:28 +0000 (16:37 +0800)]
egl: Make _eglGlobal initialize statically.
Now that display and surface hash tables are moved out, _eglGlobal can
be initialized statically.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Mon, 10 Aug 2009 07:13:42 +0000 (15:13 +0800)]
egl: Implement _eglFiniDisplay.
_eglFiniDisplay is called at exit time to free allocated displays. It
is, however, not used right now.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Mon, 10 Aug 2009 06:16:32 +0000 (14:16 +0800)]
egl: Make display and surface hash tables local.
Move display and surface hash tables to egldisplay.c, and have them
initialized on demand.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Mon, 10 Aug 2009 04:46:08 +0000 (12:46 +0800)]
egl: Initialize current thread management on demand.
Current thread management was initialized in _eglInitGlobals, which is
called only in eglGetDisplay. Since EGL does not require eglGetDisplay
to be called first, the initialization is better to be done on demand.
_eglFiniCurrent is removed, as it is not called at all.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Mon, 10 Aug 2009 04:20:31 +0000 (12:20 +0800)]
egl: Destroy eglThreadInfo on thread exit.
This is done through pthread TSD destructor. It destroys all thread
infos except for main thread's. The thread info of the main thread is
destroyed by _eglFiniCurrent.
TLS case is not supported yet.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Mon, 10 Aug 2009 03:35:06 +0000 (11:35 +0800)]
egl: Add eglmutex.h.
The implementation uses pthread mutex when available. Otherwise, it is
no-op.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
RALOVICH, Kristóf [Tue, 11 Aug 2009 20:42:47 +0000 (13:42 -0700)]
glx: fix signedness warning
Brian Paul [Wed, 12 Aug 2009 01:30:05 +0000 (19:30 -0600)]
mesa: handle glDrawPixels images which are larger than max rect texture size
Brian Paul [Wed, 12 Aug 2009 00:56:26 +0000 (18:56 -0600)]
mesa: added _mesa_meta_draw_pixels()
Brian Paul [Wed, 12 Aug 2009 00:54:57 +0000 (18:54 -0600)]
mesa: added META_FOG and optimize some meta_begin/end() code
Brian Paul [Wed, 12 Aug 2009 00:52:24 +0000 (18:52 -0600)]
gallium/trace: remove stray semicolons
Brian Paul [Wed, 12 Aug 2009 00:47:35 +0000 (18:47 -0600)]
gallium/xlib: add missing tex_usage parameter
Brian Paul [Wed, 12 Aug 2009 00:47:20 +0000 (18:47 -0600)]
gallium/egl: add missing tex_usage parameter
Brian Paul [Wed, 12 Aug 2009 00:45:20 +0000 (18:45 -0600)]
gallium/xlib: add missing tex_usage parameter
Brian Paul [Wed, 12 Aug 2009 00:40:50 +0000 (18:40 -0600)]
gallium/identity: remove stray semicolons
Alex Deucher [Wed, 12 Aug 2009 02:15:18 +0000 (22:15 -0400)]
r600: use the drm ioctls for swap and texture upload
NOTE: THIS REQUIRES AN UPDATED DRM!
Jakob Bornecrantz [Sat, 8 Aug 2009 15:20:46 +0000 (17:20 +0200)]
i915g: Reduce max relocs
Jakob Bornecrantz [Sat, 8 Aug 2009 15:19:43 +0000 (17:19 +0200)]
i915g: Check relocs as well
Jakob Bornecrantz [Tue, 11 Aug 2009 17:37:09 +0000 (18:37 +0100)]
i915g: Implement surface_buffer_create for softpipe
In order to run softpipe on st/xorg we need this function
Jakob Bornecrantz [Tue, 11 Aug 2009 17:33:58 +0000 (18:33 +0100)]
gallium: Add texture usage information to surface_buffer_create
We need aditional meta data about the usage of the surface
in softpipe because we need to be able tell the diffrence
between PRIMARY and DISPLAY_TARGET surfaces.
Brian Paul [Tue, 11 Aug 2009 16:00:02 +0000 (10:00 -0600)]
mesa/glapi: regenerated files from gl_API.xml
Brian Paul [Tue, 11 Aug 2009 15:30:12 +0000 (09:30 -0600)]
gallium: fix debug_printf() format string
Brian Paul [Tue, 11 Aug 2009 14:54:25 +0000 (08:54 -0600)]
glut: fix incorrect Vista maximisation size due to WM_GETMINMAXINFO handling
See bug 23182.
Brian Paul [Tue, 11 Aug 2009 14:37:22 +0000 (08:37 -0600)]
mesa: remove _mesa_set_vp_override() from _mesa_Bitmap()
This reverts part of commit
2c9812e3d346eb07180da520909b142e8afc1c59.
The calls to _mesa_set_vp_override() were causing extra state validation
and caused the gallium state tracker's bitmap cache to get flushed on
every call.
Michel Dänzer [Tue, 11 Aug 2009 07:16:48 +0000 (09:16 +0200)]
r300g: Fix up remaining VAP_CNTL_STATUS writes for big endian.
Michel Dänzer [Tue, 11 Aug 2009 07:13:12 +0000 (09:13 +0200)]
r300g: Emit relocations for pitch registers.
Fixes CS failures with tiling enabled kernels.
Cooper Yuan [Tue, 11 Aug 2009 06:39:58 +0000 (14:39 +0800)]
r300g: a typo of debug message
Cooper Yuan [Tue, 11 Aug 2009 06:36:01 +0000 (14:36 +0800)]
r600: update num of interp if posizition is used
Eric Anholt [Mon, 10 Aug 2009 22:50:22 +0000 (15:50 -0700)]
demos: Fix the VBO usage in glsl/multitex.
The fix for 965 to be noisy when apps sent pointers instead of VBO offsets
caught this app in the act of doing exactly that.
Bug #23203
Brian Paul [Mon, 10 Aug 2009 21:48:02 +0000 (15:48 -0600)]
intel: use new _mesa_meta_copy_pixels() function
glCopyPixels() no longer hits a software fallback when zooming, blending, etc.
Brian Paul [Mon, 10 Aug 2009 21:44:05 +0000 (15:44 -0600)]
mesa: save/restore texture matrix in meta code
Also, save/restore viewport and texture state in _mesa_meta_copy_pixels()
Brian Paul [Mon, 10 Aug 2009 21:05:53 +0000 (15:05 -0600)]
mesa: for meta blit, check max texture size, use glCopyTexSubImage2D() when possible
Brian Paul [Mon, 10 Aug 2009 20:43:15 +0000 (14:43 -0600)]
mesa: initial meta implementation of glCopyPixels()
Brian Paul [Mon, 10 Aug 2009 20:15:56 +0000 (14:15 -0600)]
mesa: remove debug flush call
Brian Paul [Mon, 10 Aug 2009 19:58:56 +0000 (13:58 -0600)]
intel: add missing \n to fprintf()
Brian Paul [Mon, 10 Aug 2009 19:43:00 +0000 (13:43 -0600)]
intel: use new _mesa_meta_blit_framebuffer() function
The previous version of framebuffer blit was a quick hack. The new meta
version works pretty well.
Brian Paul [Mon, 10 Aug 2009 19:35:58 +0000 (13:35 -0600)]
mesa: new driver meta-ops module
Implement glClear() in terms of quad rendering, implement glBlitFramebuffer()
in terms of glCopyTexImage2D + textured quad, etc.
There have been several places in the drivers where we've implemented
meta rendering similar to this. This is an effort to do it in a more
portable and more efficient form.
The _mesa_meta_begin/end() functions act like glPush/PopAttrib() but are
lighter-weight. Plus, _mesa_meta_begin() resets GL state back to default
values (texturing off, identity vertex transform, etc) so the meta drawing
functions don't have to worry about it.
For now only _mesa_mesa_blit_framebuffer() and _mesa_meta_clear() are
implemented. glDrawPixels() and glCopyPixels() would be the next candidates.
Brian Paul [Mon, 10 Aug 2009 19:43:50 +0000 (13:43 -0600)]
mesa: added GLcontext::Meta field for meta rendering state
Dave Airlie [Sat, 8 Aug 2009 10:05:11 +0000 (20:05 +1000)]
radeon_fbo: switch short to byte for 565
Dave Airlie [Mon, 10 Aug 2009 00:10:13 +0000 (10:10 +1000)]
radeon: fix cut-n-paste in alphabits in fbo code
Pauli Nieminen [Sun, 9 Aug 2009 12:22:34 +0000 (15:22 +0300)]
egl: Add depend and depend.bak to clean target
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Dave Airlie [Sun, 9 Aug 2009 10:46:12 +0000 (20:46 +1000)]
r600: looks like a typo
Cooper Yuan [Sun, 9 Aug 2009 04:18:40 +0000 (12:18 +0800)]
r600: load per-pixel position into PS in order to use fragment.position.
This patch can fix /progs/fp/tri-depth, tri-depth2, tri-depthwrite,
tri-depthwrite2 and point-position.
Brian Paul [Fri, 7 Aug 2009 20:51:59 +0000 (14:51 -0600)]
mesa: update framebuffer status as needed in _mesa_source/dest_buffer_exists()
Brian Paul [Fri, 7 Aug 2009 19:39:03 +0000 (13:39 -0600)]
mesa: simplify glPushAttrib() list building code
Brian Paul [Fri, 7 Aug 2009 19:07:59 +0000 (13:07 -0600)]
mesa: remove old, prototype code
Brian Paul [Fri, 7 Aug 2009 18:04:09 +0000 (12:04 -0600)]
swrast: replace GLenum, GLint with GLbitfield for buffer vars
Brian Paul [Fri, 7 Aug 2009 16:51:03 +0000 (10:51 -0600)]
mesa: use _mesa_bufferobj_mapped()
Corbin Simpson [Sat, 8 Aug 2009 03:29:50 +0000 (20:29 -0700)]
r300g: Knock out another fragment of invariant state.
Colorbuffer setup will always happen.
Corbin Simpson [Sat, 8 Aug 2009 03:16:39 +0000 (20:16 -0700)]
gallium: Move minify() to u_math.
minify() is usually used in mipmap size calculation. Strangely enough,
we all defined it as MAX2(1, d >> 1); imagine that. :3
Corbin Simpson [Sat, 8 Aug 2009 02:46:52 +0000 (19:46 -0700)]
r300g: Remove r300_constant_buffer::user_count.
Not needed with new compiler.