Keith Whitwell [Mon, 23 Oct 2006 08:43:26 +0000 (08:43 +0000)]
Emit cliprects in the userspace driver as required, rather than
passing them to the kernel. This works because all drawing commands
in the 965 driver are emitted with the lock held and the batchbuffer
is always flushed prior to releasing the lock. This allows multiple
cliprects to be dealt with, without replaying entire batchbuffers and
redundantly re-emitting state.
Brian Paul [Sun, 22 Oct 2006 23:21:45 +0000 (23:21 +0000)]
assorted clean-ups
Brian Paul [Sun, 22 Oct 2006 22:58:42 +0000 (22:58 +0000)]
don't save color/z if fragment is killed
Brian Paul [Sun, 22 Oct 2006 22:37:30 +0000 (22:37 +0000)]
add minstall script to MAIN_FILES (bug 8720)
Brian Paul [Sun, 22 Oct 2006 22:36:24 +0000 (22:36 +0000)]
minor tweaks good for about 12% faster execution
Brian Paul [Sun, 22 Oct 2006 22:25:46 +0000 (22:25 +0000)]
silence used var warnings
Brian Paul [Sun, 22 Oct 2006 17:18:50 +0000 (17:18 +0000)]
Color clamping fixes.
Brian Paul [Sat, 21 Oct 2006 23:21:35 +0000 (23:21 +0000)]
move/improve comments, clean up code in a few places
Brian Paul [Sat, 21 Oct 2006 22:56:21 +0000 (22:56 +0000)]
fix another logic error in computing deferredTexture
Brian Paul [Sat, 21 Oct 2006 22:43:15 +0000 (22:43 +0000)]
For deferredTexture, need to check if the fragment program/shader writes
the fragment Z.
Brian Paul [Sat, 21 Oct 2006 21:14:20 +0000 (21:14 +0000)]
move interpolate_varying() call
Brian Paul [Sat, 21 Oct 2006 21:13:40 +0000 (21:13 +0000)]
don't use params passed to Clear()
Brian Paul [Sat, 21 Oct 2006 00:20:16 +0000 (00:20 +0000)]
Move interpolate_texcoords() and interpolate_varying() calls into shade_texture_span().
Added some INLINE hints.
Brian Paul [Thu, 19 Oct 2006 22:27:44 +0000 (22:27 +0000)]
Consolidate some code into shade_texture_span().
Clean up logic for deferred texturing/shading.
Brian Paul [Thu, 19 Oct 2006 22:26:29 +0000 (22:26 +0000)]
fixed Fixed/Int bug
Brian Paul [Thu, 19 Oct 2006 22:13:31 +0000 (22:13 +0000)]
remove temp code
Brian Paul [Thu, 19 Oct 2006 20:11:15 +0000 (20:11 +0000)]
remove some debug/test changes
Brian Paul [Thu, 19 Oct 2006 20:09:05 +0000 (20:09 +0000)]
New bin/minstall script - a minimal replacement for 'install'.
Correctly handles symlinks so we can get rid of the COPY_LIBS stuff.
Brian Paul [Thu, 19 Oct 2006 14:02:42 +0000 (14:02 +0000)]
fix problem when CHAN_BITS == 32 (bug 8704), remove unneeded assertion
Michal Krol [Thu, 19 Oct 2006 08:07:00 +0000 (08:07 +0000)]
Fix nonportable pointer+unsigned arithmetic. Use pointer+int.
Brian Paul [Wed, 18 Oct 2006 23:14:02 +0000 (23:14 +0000)]
added clamp_colors(), updated assertions
Brian Paul [Wed, 18 Oct 2006 22:38:13 +0000 (22:38 +0000)]
minor re-org, doxygen comments
Brian Paul [Wed, 18 Oct 2006 22:05:13 +0000 (22:05 +0000)]
Changed install filenames to libGL* and libOSMesa* so things work on Darwin
where GL_LIB_NAME = libGL.dylib but the other library name is libGL.1.dylib
Unlike other platforms, the version number is in the middle of the name,
not at the end.
See bug 8671
Ian Romanick [Wed, 18 Oct 2006 20:27:11 +0000 (20:27 +0000)]
Enable GLX_SGI_make_current_read for radeon.
Added code to track the drawable bound to the context for reading. In
addition, when a drawable is initially bound (for reading or drawing)
or when the size of the drawable changes, update the size of the
framebuffer object that back the drawable (for software fallbacks).
Deprecate the old GetBufferSize interface.
Bump the driver date.
These changes were tested with wincopy on both direct rendering and
accelerated indirect rendering (AIGLX).
Brian Paul [Wed, 18 Oct 2006 20:03:20 +0000 (20:03 +0000)]
Don't use x/y/w/h params given to Clear().
Brian Paul [Wed, 18 Oct 2006 20:02:42 +0000 (20:02 +0000)]
Want to stop passing x/y/width/height to Clear() function.
The coordinates need to be computed after we've got the hw lock.
Code updated to:
1. Ignore all/x/y/width/height/ params passed to Clear func.
2. Pass 0,0,0,0,0 to _swrast_Clear() until they're totally removed.
Brian Paul [Wed, 18 Oct 2006 18:35:09 +0000 (18:35 +0000)]
Don't pass x/y/width/height to ctx->Driver.Accum().
Compute the region after we've locked (and possibly updated the buffer's size).
Same thing is needed for ctx->Driver.Clear().
Brian Paul [Wed, 18 Oct 2006 18:03:54 +0000 (18:03 +0000)]
glDrawPixels, line clipping bug fixes
Brian Paul [Wed, 18 Oct 2006 18:02:05 +0000 (18:02 +0000)]
Fix broken line clipping.
When both ends of the line were clipped, we were using the new v0 instead
of the original v0 when computing the location of the second vertex. Thus,
the second vertex's position was incorrect.
Thanks to Heath Feather for finding a test case.
Brian Paul [Wed, 18 Oct 2006 17:36:57 +0000 (17:36 +0000)]
Fix a dangerous use of ASSERT in an else-clause not enclosed in braces.
We've been lucky if this hasn't been causing line rendering bugs.
Brian Paul [Tue, 17 Oct 2006 22:23:32 +0000 (22:23 +0000)]
Always convert colors to float before running a fragment shader/program.
Brian Paul [Tue, 17 Oct 2006 22:22:42 +0000 (22:22 +0000)]
fix fog color bug
Brian Paul [Tue, 17 Oct 2006 21:12:32 +0000 (21:12 +0000)]
Move struct atifs_machine into s_atifragshader.c
Add support for runtime colorbuffer types.
Brian Paul [Tue, 17 Oct 2006 20:40:22 +0000 (20:40 +0000)]
Seperate interpolate_colors() and interpolate_specular().
Fix bugs in apply_aa_coverage().
Brian Paul [Tue, 17 Oct 2006 20:22:53 +0000 (20:22 +0000)]
apply_aa_coverage() for ubyte/ushort/float
Brian Paul [Tue, 17 Oct 2006 19:57:25 +0000 (19:57 +0000)]
new assertions - one of which is currently failing with arbfslight.c
Brian Paul [Tue, 17 Oct 2006 18:54:19 +0000 (18:54 +0000)]
remove obsolete intelBufferSize(), bump driver date
Brian Paul [Tue, 17 Oct 2006 17:51:39 +0000 (17:51 +0000)]
Remove get_buffer_size()
Always check window size in XMesaMakeCurrent() in case glViewport is not
called.
Brian Paul [Tue, 17 Oct 2006 17:44:43 +0000 (17:44 +0000)]
Lots of fixes/changes to select color depth at runtime.
Brian Paul [Tue, 17 Oct 2006 17:43:47 +0000 (17:43 +0000)]
check if ctx->Driver.GetBufferSize==NULL and no-op
Brian Paul [Tue, 17 Oct 2006 17:03:21 +0000 (17:03 +0000)]
include x86-64.h to silence warning
Brian Paul [Tue, 17 Oct 2006 17:03:00 +0000 (17:03 +0000)]
Fix CHAN_BITS=32 issues.
Save/restore array->ChanType in case colors are converted.
Brian Paul [Mon, 16 Oct 2006 23:22:44 +0000 (23:22 +0000)]
Added -clip option to test glCopyPixels beyond window bounds.
Clear dest window to black before copying.
Use glWindowPos2iARB().
Brian Paul [Mon, 16 Oct 2006 22:02:33 +0000 (22:02 +0000)]
Init _UseTexEnvProgram to fix failed assertion in i915_render_start() - this may be temporary
Brian Paul [Mon, 16 Oct 2006 21:39:34 +0000 (21:39 +0000)]
Updates to intelWindowMoved():
Only need to call _mesa_resize_framebuffer() when we've detected a window
size change.
Set the drawFb->Initalized flag to GL_TRUE to avoid obsolete
Driver.GetBufferSize/ResizeBuffer calls in the Mesa code.
Ian Romanick [Mon, 16 Oct 2006 20:59:53 +0000 (20:59 +0000)]
Track the currently bound read drawable and make sure its info is up
to date.
Ian Romanick [Mon, 16 Oct 2006 20:57:09 +0000 (20:57 +0000)]
Fix build when DEBUG is defined but DEBUG_MATH is not.
A couple places attempted to call _math_test_all_*_functions when
DEBUG was defined. These routines only exist when DEBUG_MATH is
defined.
Brian Paul [Mon, 16 Oct 2006 20:51:50 +0000 (20:51 +0000)]
s/X86_SOURCES/ASM_SOURCES/ in ALL_SOURCES to try to fix make depend warnings (bug 8669)
Ian Romanick [Mon, 16 Oct 2006 17:50:19 +0000 (17:50 +0000)]
Fix bug #8563.
Fixes a GLX protocol problem when binding an indirect rendering context
after a direct rendering context. In this case, the oldContetTag sent to
the server should be None, but the currectContextTag stored in the direct
rendering context (i.e., -1) was sent instead.
Brian Paul [Mon, 16 Oct 2006 17:26:30 +0000 (17:26 +0000)]
Set _NEW_BUFFERS in _mesa_resize_framebuffer(). This makes sure the swrast
module updates its state (CLIP_BIT) upon resizes. The driver could do this
instead, but doing it here is safer.
Brian Paul [Mon, 16 Oct 2006 16:39:54 +0000 (16:39 +0000)]
remove some old code that could cause infinite recursion
Brian Paul [Sun, 15 Oct 2006 22:30:35 +0000 (22:30 +0000)]
allow >10 mipmap levels (patch by Benno Schulenberg) (bug 3130)
Brian Paul [Sun, 15 Oct 2006 22:29:16 +0000 (22:29 +0000)]
regenerated to get DRI_CONF_EXCESS_MIPMAP()
Roland Scheidegger [Sun, 15 Oct 2006 21:47:56 +0000 (21:47 +0000)]
fix handling of textures with a base internal format that does not have all four rgba values set for radeon and r200 (discovered with a modified glean pixelFormats test, noone ever noticed in over 2 years). For radeon, use hw format I8 as previously, and change tex env to make the correct default values appear for both GL_ALPHA and GL_LUMINANCE textures. For r200, which supports GL_LUMINANCE just fine, use the AL88 hw format for GL_ALPHA textures, since it seems like it's probably not worth the effort to fix up the texture environment (certainly complicated in case of ATI_fragment_shader programs).
Brian Paul [Sun, 15 Oct 2006 19:26:43 +0000 (19:26 +0000)]
Added #if / #else / #endif around code related to framebuffer initialization
to describe what should be changed in the drivers.
Brian Paul [Sun, 15 Oct 2006 19:20:29 +0000 (19:20 +0000)]
updated comments, mark GetBufferSize() and ResizeBuffers() as obsolete
Brian Paul [Sun, 15 Oct 2006 19:08:11 +0000 (19:08 +0000)]
minor clean-up: s/intel->driDrawable/dPriv/
Brian Paul [Sun, 15 Oct 2006 18:51:22 +0000 (18:51 +0000)]
Remove calls to _mesa_ResizeBuffersMESA() - generally replace with code to
check the current window size, then call _mesa_resize_framebuffer().
Brian Paul [Sun, 15 Oct 2006 18:31:29 +0000 (18:31 +0000)]
Remove a bunch of "ctx->Driver.function = _swrast_Function" lines since
default/fallback functions are already plugged in by the call to
_mesa_init_driver_functions().
Jerome Glisse [Sun, 15 Oct 2006 18:22:28 +0000 (18:22 +0000)]
Use endianness test function provided by mesa.
Use the _mesa_little_endian helper function insted
of the MESA_BIG_ENDIAN flag. There is still place
using this flag but we need to find how to submit
16bits elements on big endian computer.
Brian Paul [Sun, 15 Oct 2006 18:18:39 +0000 (18:18 +0000)]
Remove Driver.ResizeBuffers = _mesa_resize_framebuffer lines.
This is already done by the preceeding call to _mesa_init_driver_functions()
which plugs in default functions like that.
Brian Paul [Sun, 15 Oct 2006 17:57:53 +0000 (17:57 +0000)]
increate MaxTextureLevels to 11 (bug 3130)
Brian Paul [Sun, 15 Oct 2006 16:38:09 +0000 (16:38 +0000)]
check if files exist before installing (Thierry Reding)
Brian Paul [Sat, 14 Oct 2006 23:24:45 +0000 (23:24 +0000)]
allow specifying image size on cmd line
Brian Paul [Sat, 14 Oct 2006 23:02:26 +0000 (23:02 +0000)]
Some code movement so that the gl_framebuffer is fully initialized before
calling _mesa_make_current() to avoid hitting the initialize_framebuffer_size()
stuff in context.c
Brian Paul [Sat, 14 Oct 2006 22:52:17 +0000 (22:52 +0000)]
Big re-org of buffer size management.
All buffer resizes now handled by xmesa_check_and_update_buffer_size() which
uses the _mesa_resize_framebuffer() function.
Moved all low-level XImage/Pixmap resizing into xm_buffers.c file.
Also, update lots of comments for Doxygen.
Brian Paul [Sat, 14 Oct 2006 21:33:06 +0000 (21:33 +0000)]
cut and paste error: s/Width/Height/
Brian Paul [Sat, 14 Oct 2006 20:28:36 +0000 (20:28 +0000)]
build fix: s/Table/TableUB/
Brian Paul [Sat, 14 Oct 2006 15:22:18 +0000 (15:22 +0000)]
assorted clean-ups
Roland Scheidegger [Fri, 13 Oct 2006 22:10:05 +0000 (22:10 +0000)]
implement ARB_point_parameters and ARB_point_sprite on r200. The code is nearly the same as outlined in bug #4707, except it disables perspective correction for point sprites to make them actually work. And, separate the state atom into two as the tcl parameters would overwrite vertex program parameters when active. Also implement the GL_VERTEX_PROGRAM_POINT_SIZE_ARB option to make vertex programs outputting a point size work correctly (untested). Smooth points will still always be size 1. While here, enable gouraud shading for fog when using fog coord.
Brian Paul [Fri, 13 Oct 2006 17:45:08 +0000 (17:45 +0000)]
remove needless condition
Brian Paul [Fri, 13 Oct 2006 17:41:23 +0000 (17:41 +0000)]
Consolidate, move, fix code related to color index and stencil image transfer
operations (shift, offset, table lookup, etc).
Ian Romanick [Fri, 13 Oct 2006 17:34:01 +0000 (17:34 +0000)]
Fix dumb build errors.
I always build with -DGLX_USE_TLS, so I never hit these paths. glapi.h is
required in some places because _glapi_Dispatch is declared there, but
_glapi_tls_Dispatch is declared in glthread.h.
Brian Paul [Fri, 13 Oct 2006 16:34:25 +0000 (16:34 +0000)]
In _mesa_pack_rgba_span_float() we don't need to make a temporary copy of
incoming colors when applying pixel transfer ops. In all cases, the
caller either indicates there's no pixel transfer ops, or the incoming
colors are coming from temporary storage already and can be safely
modified.
Brian Paul [Fri, 13 Oct 2006 15:11:47 +0000 (15:11 +0000)]
s/GLuint/GLbitfield/
Brian Paul [Fri, 13 Oct 2006 15:10:55 +0000 (15:10 +0000)]
s/GL_FALSE/0x0/
Brian Paul [Fri, 13 Oct 2006 15:00:35 +0000 (15:00 +0000)]
removed obsolete _mesa_pack_rgba_span_chan()
Brian Paul [Fri, 13 Oct 2006 13:28:48 +0000 (13:28 +0000)]
include glapi.h to fix broken build
Keith Whitwell [Fri, 13 Oct 2006 11:21:55 +0000 (11:21 +0000)]
Upload of interleaved arrays currently assumes that position is the
first element in the interleaved group. Add a test to catch cases
where this isn't true and use per-array uploads instead. Fixes compiz
glitches on x64.
Keith Whitwell [Fri, 13 Oct 2006 11:20:25 +0000 (11:20 +0000)]
Make sure instructions are zero'd out before use.
Keith Whitwell [Fri, 13 Oct 2006 11:19:38 +0000 (11:19 +0000)]
Use unsigned long batchbuffer offset, fixes x64 warnings.
Keith Whitwell [Fri, 13 Oct 2006 11:17:37 +0000 (11:17 +0000)]
Fix printf warning.
Keith Whitwell [Fri, 13 Oct 2006 11:16:45 +0000 (11:16 +0000)]
Use unsigned long cast for checking pointer alignment, fixes x64 warnings.
Keith Whitwell [Fri, 13 Oct 2006 11:14:43 +0000 (11:14 +0000)]
Use mesa function to get opcode name rather than an internal table.
Michal Krol [Fri, 13 Oct 2006 08:44:32 +0000 (08:44 +0000)]
Indent and cosmetic changes.
Brian Paul [Fri, 13 Oct 2006 00:44:31 +0000 (00:44 +0000)]
Revamp color table code.
Always store all color tables as both float and ubyte.
Brian Paul [Thu, 12 Oct 2006 23:48:57 +0000 (23:48 +0000)]
adjust_colors() function replaces old _mesa_chan_to_float_span() function.
Brian Paul [Thu, 12 Oct 2006 23:47:51 +0000 (23:47 +0000)]
use _mesa_map_ci8_to_rgba8() instead of _mesa_map_ci8_to_rgba()
Brian Paul [Thu, 12 Oct 2006 23:47:19 +0000 (23:47 +0000)]
remove _mesa_chan_to_float_span(), rename _mesa_map_ci8_to_rgba()
Brian Paul [Thu, 12 Oct 2006 23:18:05 +0000 (23:18 +0000)]
_mesa_map_ci_to_rgba_chan() no longer used
Brian Paul [Thu, 12 Oct 2006 23:17:02 +0000 (23:17 +0000)]
Lots of changes to support runtime renderbuffer depths.
_swrast_read_rgba_span() now takes a datatype parameter.
New optimization for glReadPixels(format=GL_RGB).
New glCopyPixels optimization for the simple, common cases.
Brian Paul [Thu, 12 Oct 2006 23:14:19 +0000 (23:14 +0000)]
don't use temp storage in _mesa_convert_colors() when possible
Brian Paul [Thu, 12 Oct 2006 15:55:04 +0000 (15:55 +0000)]
remove some debug code invalidated by prev check-in
Ian Romanick [Wed, 11 Oct 2006 22:37:14 +0000 (22:37 +0000)]
Fix bug #4681.
glDeleteTextures and glDeleteTexturesEXT were erroneously listed as
aliases of each other. For anything /except/ GLX protocol they are
aliases. This set of changes allows functions that are functionally
identical but have different GLX protocol to be listed as aliases.
When building with GLX_INDIRECT_RENDERING set, different static
functions are used. These functions determine whether the current
context is direct rendering or not. If the context is direct
rendering, the aliased function (e.g., glDeleteTextures in the case of
glDeleteTexturesEXT) is called. If the context is not direct
rendering, the correct GLX protocol is sent.
For a deeper explanation of what is changed, please see:
http://dri.freedesktop.org/wiki/PartiallyAliasedFunctions
Brian Paul [Wed, 11 Oct 2006 22:21:55 +0000 (22:21 +0000)]
use GLvoid * for _swrast_write_zoomed_rgb/rgba_span() functions
Brian Paul [Wed, 11 Oct 2006 22:07:01 +0000 (22:07 +0000)]
rewrite/simplify the fast_draw_pixels() function
Brian Paul [Wed, 11 Oct 2006 22:03:34 +0000 (22:03 +0000)]
use _mesa_convert_colors(), update some assertions
Brian Paul [Wed, 11 Oct 2006 22:02:36 +0000 (22:02 +0000)]
Added _mesa_convert_colors().
_mesa_clip_drawpixels() now handles Pixel.ZoomY==-1.
Brian Paul [Wed, 11 Oct 2006 20:14:08 +0000 (20:14 +0000)]
support for runtime renderbuffer depths
Brian Paul [Wed, 11 Oct 2006 17:45:06 +0000 (17:45 +0000)]
In xmesa_DrawPixels_8R8G8B() check if drawing into a window system buffer,
not a user-created FBO.