Brian Paul [Wed, 2 Jul 2008 15:16:10 +0000 (09:16 -0600)]
generate a link error if the vertex shader references too many textures
Brian Paul [Wed, 2 Jul 2008 15:14:53 +0000 (09:14 -0600)]
set ctx->Const.MaxVertexTextureImageUnits = 0
This disallows vertex shader texture sampling. See bugs 16157, 13838.
Ian Romanick [Wed, 2 Jul 2008 13:26:11 +0000 (06:26 -0700)]
VBO: Regenerate files based on recent changes to gl_API.xml
Since GL_ARB_vertex_buffer_object protocol isn't supported yet, these
changes are innocuous.
Paulo Cesar Pereira de Andrade [Wed, 2 Jul 2008 13:22:47 +0000 (06:22 -0700)]
Ian Romanick [Wed, 2 Jul 2008 02:30:32 +0000 (19:30 -0700)]
VBO: Add missing functions related to VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB
Ian Romanick [Wed, 2 Jul 2008 01:20:21 +0000 (18:20 -0700)]
VBO: add GLX related annotations
Brian Paul [Tue, 1 Jul 2008 23:59:07 +0000 (17:59 -0600)]
mesa: fix a GLSL vector subscript/writemask bug
This fixes a failure for cases like:
vec4 v;
v[1] *= 2.0;
The v[1] actually acts like a writemask, equivalent to v.y
The fix is a bit convoluted, but will do for now.
Brian Paul [Tue, 1 Jul 2008 23:52:31 +0000 (17:52 -0600)]
mesa: move some functions
Brian Paul [Tue, 1 Jul 2008 23:50:14 +0000 (17:50 -0600)]
mesa: make _slang_swizzle_swizzle() non-private
Brian Paul [Tue, 1 Jul 2008 17:41:21 +0000 (11:41 -0600)]
mesa: better function inlining in the presence of 'return' statements
Before, the presence of a 'return' statement always prevented inlining
a function. This was because we didn't want to accidentally return from
the _calling_ function. We still need the semantic of 'return' when inlining
but we can't always use unconditional branches/jumps (GPUs don't always
support arbitrary branching).
Now, we allow inlining functions w/ return if the return is the last
statement in the function. This fixes the common case of a function
that returns a value, such as:
vec4 square(const in vec4 x)
{
return x * x;
}
which effectively compiles into:
vec4 square(const in vec4 x)
{
__retVal = x * x;
return;
}
The 'return' can be no-op'd now and we can inline the function.
Brian Paul [Tue, 1 Jul 2008 17:41:02 +0000 (11:41 -0600)]
mesa: add/fix some IrInfo entries for debugging purposes
Brian Paul [Tue, 1 Jul 2008 15:02:10 +0000 (09:02 -0600)]
link to DRM 2.3.1
Brian Paul [Tue, 1 Jul 2008 14:48:48 +0000 (08:48 -0600)]
press 'm' to toggle multisample enable/disable
Brian Paul [Tue, 1 Jul 2008 14:48:22 +0000 (08:48 -0600)]
init machine->Samplers (fixes vertex program texture fetches)
Dave Airlie [Tue, 1 Jul 2008 08:22:12 +0000 (18:22 +1000)]
dri: drop asserts to make build against stable libdrm
These asserts are of questionable use at the moment with things in flux.
Xiang, Haihao [Tue, 1 Jul 2008 03:38:07 +0000 (11:38 +0800)]
dri: Take the base image size into account when computing
first level of the mipmap. fix #16210
Dan Nicholson [Mon, 30 Jun 2008 17:28:02 +0000 (10:28 -0700)]
autoconf: Improve the visibility of the swrast DRI driver
Improve the --with-dri-drivers help text so that users are aware that
they should install the swrast DRI driver.
Corbin Simpson [Mon, 30 Jun 2008 18:12:51 +0000 (11:12 -0700)]
r3xx/r5xx: Enable ARB_point_parameters.
This isn't complete yet. It does cover the two most common usage cases,
though, and at least the third one (POINT_DISTANCE_ATTENUATION) is possible,
so I'll do that later.
Nicolai Haehnle [Mon, 30 Jun 2008 06:37:13 +0000 (08:37 +0200)]
r300: Fix dumb mistake in LOD bias translation
Nicolai Haehnle [Sun, 29 Jun 2008 22:44:26 +0000 (00:44 +0200)]
r300: Cleanup LodBias support
. There is both a per-texture unit and a per-texture object (at least for
OpenGL 1.4); this should now be supported properly.
. The LOD bias calculation in r300_state has been simplified and corrected
(need to multiply by 32 instead of 31, and ensure clamping)
. do not clamp LOD bias in TexEnv, as that behaviour conflicts with what
the spec says
. set Const.MaxTextureLodBias properly
. remove the no_neg_lod_bias property; if somebody can explain what
it's good for, we can add it back in, but according to Google, nobody
seems to use it
. removed some dead code and unused variables
Corbin Simpson [Sun, 29 Jun 2008 17:30:47 +0000 (10:30 -0700)]
r300: Change LOD bias emission to more closely follow per-tex rules.
Okay, this time it's for real, and for good. This should be a perma-fix.
Corbin Simpson [Sun, 29 Jun 2008 17:29:32 +0000 (10:29 -0700)]
Revert accidental edit to progs/demos/lodbias.
*puts yet another paper bag over head*
Nicolai Haehnle [Sun, 29 Jun 2008 15:24:32 +0000 (17:24 +0200)]
demos/shadowtex: Don't set TEXTURE_WRAP_T for 1D texture
The operation doesn't really make sense. It triggered a bug in the r300 DRI
driver (and possibly other drivers that simulate 1D textures via 2D textures).
I've added an isolated test case for this bug to Piglit, so everybody wins.
Nicolai Haehnle [Sun, 29 Jun 2008 15:20:52 +0000 (17:20 +0200)]
r300: Fix wrap mode for 1D textures
Brian Paul [Sat, 28 Jun 2008 22:48:31 +0000 (16:48 -0600)]
s/GL_INVALID_VALUE/GL_INVALID_OPERATION/ in _mesa_get_uniformfv()
Brian Paul [Sat, 28 Jun 2008 22:48:23 +0000 (16:48 -0600)]
mesa: added null ptr checks
Dan Nicholson [Thu, 12 Jun 2008 13:46:32 +0000 (06:46 -0700)]
DRI-specific pkg-config file
Since the gl pkg-config file doesn't convey any specifics about the
backend in use, this adds a new pkg-config file for when DRI is in use.
This can be used by the xserver build to determine if the DRI and/or
GLX extensions are appropriate.
Dan Nicholson [Wed, 4 Jun 2008 20:17:06 +0000 (13:17 -0700)]
autoconf: Check for posix_memalign
Rather than just defining HAVE_POSIX_MEMALIGN on Linux, check whether
the function exists on all platforms and define the macro if it is.
Alan Hourihane [Thu, 26 Jun 2008 21:53:29 +0000 (22:53 +0100)]
Check in SwapBuffers for any new pending dri2 events
Eric Anholt [Tue, 24 Jun 2008 21:04:11 +0000 (14:04 -0700)]
intel: Fix glCopyPixels when x or y are < 0 in hw coordinates.
Nothing would get drawn as the negative coordinates broke the rectangle
intersection code that used unsigned ints. Tested with copypix demo and
sliding the copy to the upper left.
Eric Anholt [Tue, 24 Jun 2008 20:18:40 +0000 (13:18 -0700)]
i965: Use the shared intel_pixel_copy.c.
This disables the textured copy implementation on 965, which didn't appear
to work (mesa copypix demo, disable the blit path, move so that regions don't
overlap and textured is used, and you get garbage). If we resurrect this for
i965, I'd rather it used the 915-style metaops instead. Current metaops code
left in place so that whoever picks it up has a reference.
Eric Anholt [Tue, 24 Jun 2008 18:49:21 +0000 (11:49 -0700)]
intel: Same pixel function init for everyone now.
Eric Anholt [Tue, 24 Jun 2008 18:44:42 +0000 (11:44 -0700)]
intel: Avoid glBitmap software fallback for blending when no blending occurs.
Mesa demos tend to leave blending on but in GL_ONE/GL_ZERO, or
GL_SRC_ALPHA/GL_ONE_MINUS_SRC_ALPHA with a source alpha of 1.0.
Eric Anholt [Tue, 24 Jun 2008 18:34:42 +0000 (11:34 -0700)]
intel: Merge check_blit_fragment_ops between i915/i965.
Both had some useful bits for the other.
Eric Anholt [Tue, 24 Jun 2008 17:50:10 +0000 (10:50 -0700)]
intel: Note reasons for blit pixel op fallbacks under INTEL_DEBUG=pix.
Eric Anholt [Tue, 24 Jun 2008 16:37:07 +0000 (09:37 -0700)]
i915: Add support for accelerated glBitmap, shared from 965.
Eric Anholt [Tue, 24 Jun 2008 16:48:23 +0000 (09:48 -0700)]
i915: Fix read != draw drawable for glCopyPixels.
Taken from commit
bad6e175cf59cce630c37d73f6e71f3a4de50ae6.
Eric Anholt [Tue, 24 Jun 2008 16:41:58 +0000 (09:41 -0700)]
i915: Allow accelerated pixel ops to be disabled with INTEL_NO_BLIT.
This matches 965.
Dan Nicholson [Mon, 23 Jun 2008 03:29:45 +0000 (20:29 -0700)]
Ensure all objects are built when installing DRI
Dan Nicholson [Mon, 23 Jun 2008 03:26:20 +0000 (20:26 -0700)]
Don't make libmesa.a or libglapi.a depend on asm_subdirs
Since the asm_subdirs target does not actually create a file, make will
always consider that it needs to be rebuilt. If libmesa.a and libglapi.a
have asm_subdirs as a prerequisite, then they will always need to be
rebuilt, too. The correct order will be preserved by the default target,
though.
This should fix #16358.
Dan Nicholson [Mon, 23 Jun 2008 03:19:35 +0000 (20:19 -0700)]
Create $(TOP)/$(LIB_DIR) for install, too
If `make install' is run without running `make' first, the $(LIB_DIR)
will not be created. This also changes the mkdir a little bit so that it
isn't run if necessary and added `-p' so that it is immune to races.
Brian Paul [Sat, 21 Jun 2008 16:55:24 +0000 (10:55 -0600)]
replace __inline and __inline__ with INLINE macro
Brian Paul [Sat, 21 Jun 2008 16:52:40 +0000 (10:52 -0600)]
replace __inline and __inline__ with INLINE macro
Brian Paul [Sat, 21 Jun 2008 16:52:32 +0000 (10:52 -0600)]
replace __inline and __inline__ with INLINE macro
Brian Paul [Sat, 21 Jun 2008 16:49:45 +0000 (10:49 -0600)]
replace __inline and __inline__ with INLINE macro
Brian Paul [Sat, 21 Jun 2008 16:49:40 +0000 (10:49 -0600)]
#undef DEBUG to silence warnings
Brian Paul [Sat, 21 Jun 2008 16:34:38 +0000 (10:34 -0600)]
replace __inline and __inline__ with INLINE macro
Brian Paul [Sat, 21 Jun 2008 16:34:00 +0000 (10:34 -0600)]
replace __inline and __inline__ with INLINE macro
Brian Paul [Sat, 21 Jun 2008 16:30:01 +0000 (10:30 -0600)]
replace __inline and __inline__ with INLINE macro
Brian Paul [Sat, 21 Jun 2008 16:27:36 +0000 (10:27 -0600)]
replace __inline and __inline__ with INLINE macro
Brian Paul [Sat, 21 Jun 2008 16:24:43 +0000 (10:24 -0600)]
replace __inline and __inline__ with INLINE macro
Brian Paul [Sat, 21 Jun 2008 16:20:54 +0000 (10:20 -0600)]
s/inline/INLINE
Brian Paul [Sat, 21 Jun 2008 16:20:31 +0000 (10:20 -0600)]
remove old comments
Alan Coopersmith [Sat, 21 Jun 2008 00:58:53 +0000 (17:58 -0700)]
Solaris port of Mesa 7.1 with autoconf support
Signed-off-by: Brian Paul <brian.paul@tungstengraphics.com>
Daniel Zhu [Sat, 21 Jun 2008 00:51:39 +0000 (17:51 -0700)]
Rename quad function to quadr to avoid clash with Solaris quad typedef
Signed-off-by: Brian Paul <brian.paul@tungstengraphics.com>
Alan Coopersmith [Fri, 6 Jun 2008 23:09:10 +0000 (16:09 -0700)]
Make minstall work with Solaris /bin/sh
Solaris /bin/sh doesn't set $PWD for you
Signed-off-by: Brian Paul <brian.paul@tungstengraphics.com>
Alan Coopersmith [Fri, 6 Jun 2008 23:06:09 +0000 (16:06 -0700)]
Fix builds with compilers other than gcc 3.0 & newer
Add #include "glheader.h" for definition of __builtin_expect for compilers
that don't support it.
Signed-off-by: Brian Paul <brian.paul@tungstengraphics.com>
Brian Paul [Sat, 21 Jun 2008 16:14:22 +0000 (10:14 -0600)]
added pointer to beta/release candidates
Alex Deucher [Sat, 21 Jun 2008 14:52:49 +0000 (10:52 -0400)]
R300: 1002:5657 is actually RV410
See bug 14289
Roland Scheidegger [Sat, 21 Jun 2008 00:50:11 +0000 (02:50 +0200)]
r200: fix typo in r200TryDrawPixels parameter validation (bug 16406)
Brian Paul [Thu, 19 Jun 2008 20:34:52 +0000 (14:34 -0600)]
mesa: tweak mipmap level selection for cube maps
This is just a hack. After we convert the 3D texcoord into a face plus 2D
texcoord we need to recompute the partial derivatives and mipmap LOD.
But we don't have the info to do that. Adjusting the original mipmap
level by -1 seems to give somewhat better results than before though.
Eric Anholt [Wed, 18 Jun 2008 20:50:13 +0000 (13:50 -0700)]
i915: Bug #14313: Fix accelerated (PBO) ReadPixels.
Refactoring of mine in
02d5ba849197e19843dad164239b51f18fb16faf broke it
by failing to understand that the masking was about sign extension.
Xiang, Haihao [Wed, 18 Jun 2008 07:33:33 +0000 (15:33 +0800)]
i965: add support for Intel 4 series chipsets
Brian Paul [Tue, 17 Jun 2008 22:44:04 +0000 (16:44 -0600)]
mesa: fix inconsistent use of GL_UNSIGNED_INT vs. GL_UNSIGNED_INT_24_8_EXT for Z unpacking
Wilfried Holzke [Tue, 17 Jun 2008 16:07:47 +0000 (10:07 -0600)]
assorted glide driver fixes
Brian Paul [Tue, 17 Jun 2008 15:01:32 +0000 (09:01 -0600)]
glu: silence warnings
Dave Airlie [Tue, 17 Jun 2008 06:29:45 +0000 (16:29 +1000)]
mesa: make mm.c use unsigned ints for offsets.
If you have a GPU using this code and it has the offsets up in this space,
this fails.
Corbin Simpson [Mon, 16 Jun 2008 18:37:32 +0000 (11:37 -0700)]
r300: Make LOD bias a persistent environment variable.
Per airlied's suggestion.
H. Verbeet [Mon, 16 Jun 2008 16:40:32 +0000 (10:40 -0600)]
Compute/setup fog coordinates even if vertex program is enabled.
Only when fog's enabled, of course.
In the usual case, this is just a pass-through operation.
Brian Paul [Mon, 16 Jun 2008 16:03:05 +0000 (10:03 -0600)]
mesa: allocate pixel zoom arrays on heap, not stack
Fixes stack overflow on Windows.
H. Verbeet [Mon, 16 Jun 2008 15:40:26 +0000 (09:40 -0600)]
Don't compute vertex fog when fragment program is active.
Corbin Simpson [Mon, 16 Jun 2008 08:21:42 +0000 (01:21 -0700)]
r300: Fix new incarnation of bug 3195.
tests/bug_3195 doesn't render right, but at least it doesn't segfault this way.
Corbin Simpson [Mon, 16 Jun 2008 08:02:16 +0000 (01:02 -0700)]
r300: Forgot to clear old state before writing new state.
Oooops. Hehe.
Corbin Simpson [Mon, 16 Jun 2008 06:54:32 +0000 (23:54 -0700)]
r300: Enable LOD bias state emission.
Properly set t->filter_1 for r300_state to emit.
Expect buggies as people see LOD bias enabled for the first time...
Corbin Simpson [Mon, 16 Jun 2008 00:30:07 +0000 (17:30 -0700)]
Oops, misordered a few instructions.
Not like it matters, though, since it's not taking effect yet.
Corbin Simpson [Mon, 16 Jun 2008 00:14:07 +0000 (17:14 -0700)]
r300: Unbreak LOD biasing, a bit.
Needs a bit more work on submission.
Dan Nicholson [Sun, 15 Jun 2008 16:06:27 +0000 (09:06 -0700)]
No more drivers/xorg
Don't try to clean in xorg since GLcore is gone.
Corbin Simpson [Sun, 15 Jun 2008 02:32:33 +0000 (19:32 -0700)]
r5xx: Enable fragment.position, partial ARB_shadow.
I don't like PROGRAM_BUILTIN; could we either patch Mesa or just use a different constant?
Corbin Simpson [Sun, 15 Jun 2008 00:51:04 +0000 (17:51 -0700)]
r5xx: Detangle FP fallback and translation switches.
r5xx should fallback if it encounters a bad FP.
TODO: Re-enable the dumb shader so we don't have to completely fallback.
Nicolai Haehnle [Sat, 14 Jun 2008 21:09:15 +0000 (23:09 +0200)]
r300: Add radeonTransformALU and fix a bug in r300_fragprog DPH
This new generic transform replaces "special" instructions by more generic
variants. Hopefully, we will be able to share this code between r300 and r500.
Nicolai Haehnle [Sat, 14 Jun 2008 18:26:10 +0000 (20:26 +0200)]
r300_fragprog: Use less complex instructions
MOV, ADD and MUL do not fit the hardware as well as MAD, but they are less
complex and thus leave more room for future optimizations.
Corbin Simpson [Sat, 14 Jun 2008 15:56:03 +0000 (08:56 -0700)]
r5xx: More FP rewriting; fix texrect FP insts.
Corbin Simpson [Sat, 14 Jun 2008 14:21:40 +0000 (07:21 -0700)]
r5xx: New FP code, take two.
Add the code emission source file, and comment out unneeded tex de-swizzling.
Corbin Simpson [Sat, 14 Jun 2008 14:03:08 +0000 (07:03 -0700)]
r5xx: FP refactor, take one.
Yes, I know it's massive. Imagine how I felt, auditing 3000 lines of code.
Corbin Simpson [Sat, 14 Jun 2008 11:37:09 +0000 (04:37 -0700)]
r3xx/r5xx: Don't force aniso.
*Pulls paper bag down over head*
Nicolai Haehnle [Sat, 14 Jun 2008 02:07:51 +0000 (04:07 +0200)]
r300: Implement GL_ARB_shadow and GL_EXT_shadow_funcs
Nicolai Haehnle [Sat, 14 Jun 2008 00:28:58 +0000 (02:28 +0200)]
texenvprogram: Mark textures using ARB_shadow as ShadowSamplers
Since ARB_fragment_program and friends are defined to ignore the setting of
the GL_TEXTURE_COMPARE_FUNC parameter, we have to explicitly enable the
shadow comparison by marking the texture unit in ShadowSamplers when
appropriate.
Nicolai Haehnle [Sat, 14 Jun 2008 01:34:09 +0000 (03:34 +0200)]
r300: Add radeonCompilerDump for debugging
Nicolai Haehnle [Fri, 13 Jun 2008 23:46:19 +0000 (01:46 +0200)]
r300_fragprog: Refactor TEX transformation
Streamlining source and destination registers, as well as texcoord scaling for
RECT textures is now done in a radeon_program based transformation.
The idea is that this will allow us to optimize away unnecessary indirections
more easily.
Nicolai Haehnle [Fri, 13 Jun 2008 21:46:04 +0000 (23:46 +0200)]
r300: Add radeon_program and trivial refactoring of r300_fragprog to use it
The idea/hope is that radeon_program will serve as an intermediate
representation for r3xx up to r6xx fragment and vertex programs.
Right now, it is nothing more than a simplistic wrapper around Mesa's
prog_instruction, together with the notion of clauses, taken from r6xx docs.
The clauses will eventually be used to represent the nodes that are used in
r300 family fragment programs.
Nicolai Haehnle [Fri, 13 Jun 2008 20:09:37 +0000 (22:09 +0200)]
r300: Do not include r300_fragprog.h from r300_context.h and other cleanups
Nicolai Haehnle [Fri, 13 Jun 2008 20:03:26 +0000 (22:03 +0200)]
r300_fragprog: Remove dead declarations, move NOP declarations into source
Nicolai Haehnle [Fri, 13 Jun 2008 19:43:09 +0000 (21:43 +0200)]
r300_fragprog: Refactoring and cleanup
Refactor so that r300_pfs_compile_state "owns"/holds a pointer to
r300_fragment_program instead of the other way round. This is more natural from
an object orientation point of view.
Move the compiled hardware state into r300_fragment_program_code, in
anticipation of on-the-fly program recompilation based on external OpenGL
state.
Nicolai Haehnle [Fri, 13 Jun 2008 18:03:17 +0000 (20:03 +0200)]
r300_fragprog: Remove dead code
Nicolai Haehnle [Fri, 13 Jun 2008 18:49:52 +0000 (20:49 +0200)]
r300/r500: Separate fragprog compiler structures
r500 code still used r300_pfs_compile_state, which contains some fields that
really only make sense on r3xx type hardware. In order to allow both fragprog
implementations to go forward without disturbing each other, I've pushed this
structure down into the respective r[3|5]00_fragprog.c
Nicolai Haehnle [Fri, 13 Jun 2008 16:41:16 +0000 (18:41 +0200)]
r300: Fix depth texture GL_LUMINANCE vs. GL_INTENSITY mixup
Nicolai Haehnle [Sat, 7 Jun 2008 12:17:56 +0000 (14:17 +0200)]
r300: Reenable t->filter_1 (though currently not used)
George Sapountzis [Fri, 13 Jun 2008 12:54:08 +0000 (15:54 +0300)]
glx: load swrast_dri.so
caveats:
- does not work with old (i.e. libGLcore) xserver:
- made unbindContext a noop
- extensions:
GLX_SGI_make_current_read
GLX_EXT_texture_from_pixmap
GLX_MESA_copy_sub_buffer
George Sapountzis [Fri, 13 Jun 2008 12:52:32 +0000 (15:52 +0300)]
dri/swrast: make unbind a noop
This is for loading swrast_dri.so from libGL.
MakeContextCurrent() seems to unbind the context right after binding it and
DRI drivers also have a noop DriverAPI.UnbindContext ...
George Sapountzis [Fri, 13 Jun 2008 12:48:34 +0000 (15:48 +0300)]
dri/swrast: add OpenGL 2.1 functions