Eric Anholt [Wed, 16 Jul 2008 17:34:39 +0000 (10:34 -0700)]
intel: Fix CopyTexSubImage's src tiling arg for the blit.
Didn't hurt 915, but needed for 965.
Eric Anholt [Tue, 15 Jul 2008 21:26:19 +0000 (14:26 -0700)]
intel: move renderbuffer mapping to separate functions.
This lets us avoid duplicated code for doing so, including the depthstencil
paths that aren't covered by SpanRenderStart/Finish. Those paths were
missing the span funcs setup, leading to a null dereference in the fbotexture
demo.
Ian Romanick [Fri, 18 Jul 2008 19:40:04 +0000 (12:40 -0700)]
intel-gem: Bump driver date
Bump the driver date and insert the string "GEM". When running tests,
this make it much easier to know that the right driver is being used.
Ian Romanick [Wed, 9 Jul 2008 15:57:02 +0000 (08:57 -0700)]
Remove redundant initalization of MaxTextureUnits
Eric Anholt [Tue, 15 Jul 2008 20:14:18 +0000 (13:14 -0700)]
intel-gem: Disable spantmp sse/mmx functions when tile swizzling.
Those functions rely on being able to treat the GET_PTR returned value as an
array indexed by x, but that's not the case for our tiling.
Bug #16387
Eric Anholt [Mon, 14 Jul 2008 20:55:37 +0000 (13:55 -0700)]
i915: fix build after previous commit.
Eric Anholt [Fri, 11 Jul 2008 21:16:36 +0000 (14:16 -0700)]
drm-gem: Use new GEM ioctls for tiling state, and support new swizzle modes.
Eric Anholt [Wed, 2 Jul 2008 18:49:10 +0000 (11:49 -0700)]
intel: span rendering requires just a flush before starting, not finish.
The dri_bo_map()s that follow will take care of idling the hardware as needed.
Eric Anholt [Wed, 2 Jul 2008 18:16:30 +0000 (11:16 -0700)]
intel-gem: Emit an MI_FLUSH at glFlush() so frontbuffer rendering is flushed.
We have something similar in the X Server that covers X Server rendering, this
is the equivalent here for rendering to the front buffer. If we cared about
avoiding this at glFlush time, we could only do this when some actual
frontbuffer rendering had occurred.
Bug #16392.
Eric Anholt [Wed, 2 Jul 2008 17:21:44 +0000 (10:21 -0700)]
intel-gem: Fix y-tile swizzling for our G965 with swizzle_mode=1.
Apparently in Y mode we get bit 6 ^ bit 9. The reflect demo in 'd' mode now
displays correctly.
Eric Anholt [Wed, 2 Jul 2008 16:10:21 +0000 (09:10 -0700)]
intel-gem: Fix Y-tiling span setup.
The boolean that the server gives us for whether the region is tiled was
getting used as the enum for what tiling mode. Instead, guess the correct
tiling in screen setup.
Also, fix the Y-tiling pitch setup. The pitch to the next tile in Y is
32 scanlines, not 8.
Eric Anholt [Tue, 1 Jul 2008 22:09:24 +0000 (15:09 -0700)]
intel-gem: Move bit 6 x tiling swizzle to a driconf option, and add new mode.
It turns out that it's not just deviceID dependent, and there's some additional
undefined factor that determines the bit 6 swizzling. It's now controllable
with swizzle_mode=[012] until we get a response on how to automatically detect.
Eric Anholt [Thu, 26 Jun 2008 22:34:27 +0000 (15:34 -0700)]
intel: Fix locking when doing intel_region_cow().
This was broken in the merge of 965 blit support. It tried to lock only
when things were already locked.
Eric Anholt [Thu, 26 Jun 2008 20:45:31 +0000 (13:45 -0700)]
intel: Replace sprinkled intel_batchbuffer_flush with MI_FLUSH or nothing.
Most of these were to ensure that caches got synchronized between 2d (or meta)
rendering and later use of the target as a source, such as for texture
miptree setup. Those are replaced with intel_batchbuffer_emit_mi_flush(),
which just drops an MI_FLUSH. Most of the remainder were to ensure that
REFERENCES_CLIPRECTS batchbuffers got flushed before the lock was dropped.
Those are now replaced by automatically flushing those when dropping the lock.
Eric Anholt [Tue, 24 Jun 2008 21:08:08 +0000 (14:08 -0700)]
Merge commit 'origin/master' into drm-gem
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.
Eric Anholt [Mon, 23 Jun 2008 22:44:10 +0000 (15:44 -0700)]
i915: Accumulate the VB into a local buffer and subdata it in.
This lets GEM use pwrite, for an additional 4% or so speedup.
Eric Anholt [Fri, 20 Jun 2008 22:00:44 +0000 (15:00 -0700)]
i915: Convert to using VBs instead of inline prims.
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 21:35:59 +0000 (14:35 -0700)]
i915: Note the non-PBO fallback for textured drawpixels under DEBUG_PIXEL.
Eric Anholt [Wed, 18 Jun 2008 21:19:18 +0000 (14:19 -0700)]
i915: Restore the accelerated PBO pixel path functions after GEM changes.
The fencing code is not required, and waiting on the fences defeated one of
the purposes of the extension, which is to allow asynchronous readpixels.
Eric Anholt [Wed, 18 Jun 2008 21:07:38 +0000 (14:07 -0700)]
Merge commit 'origin/master' into drm-gem
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
Eric Anholt [Tue, 17 Jun 2008 21:14:02 +0000 (14:14 -0700)]
[intel] Fix no_rast option on non-965.
The no_rast fallback was getting partially overwritten by later TNL init,
resulting in a segfault when things were in a mixed-up state.
Eric Anholt [Tue, 17 Jun 2008 18:15:59 +0000 (11:15 -0700)]
[intel-gem] Bug #16326: Fix X tile unswizzling on 965.
Apparently a bit gets flipped in the addressing for some rows of each tile.
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
George Sapountzis [Fri, 13 Jun 2008 12:48:06 +0000 (15:48 +0300)]
glx: use ErrorMessageF
Zack Rusin [Thu, 12 Jun 2008 23:41:54 +0000 (19:41 -0400)]
silly bug: it's PROGRAM_VARYING
Zack Rusin [Thu, 12 Jun 2008 22:53:52 +0000 (18:53 -0400)]
glsl: make sure we replace all output reads with temporaries
test in if.glsl
Zack Rusin [Thu, 12 Jun 2008 23:37:26 +0000 (19:37 -0400)]
glsl: allow uniforms
Zack Rusin [Mon, 9 Jun 2008 03:05:15 +0000 (23:05 -0400)]
glsl: fix array size initialiazers using const variables
e.g.
const int kernelSize = 9;
uniform vec2 kernel[kernelSize];
Zack Rusin [Thu, 12 Jun 2008 18:19:10 +0000 (14:19 -0400)]
almost forgot - RelAddr is a boolean so use it here
Zack Rusin [Thu, 12 Jun 2008 04:03:35 +0000 (00:03 -0400)]
shaders: fix allocation of arrays of parameters