Brian Paul [Thu, 2 Nov 2006 22:39:29 +0000 (22:39 +0000)]
Undo some of yesterday's ATI_separate_stencil changes. The ATI extension
doesn't exactly match OpenGL 2.0.
Brian Paul [Thu, 2 Nov 2006 21:43:06 +0000 (21:43 +0000)]
Fix fragment program fog problems found with Glean.
1. add PROGRAM_CONSTANT to switch() in src_vector().
2. use _mesa_append_fog_code() to handle fog options in i915ProgramStringNotify().
3. Re-enable some vertex attribute emit code that was previously disabled in i915ValidateFragmentProgram().
Brian Paul [Thu, 2 Nov 2006 21:39:20 +0000 (21:39 +0000)]
Call _mesa_problem() from i915_program_error() so we get a nice error message.
Jerome Glisse [Thu, 2 Nov 2006 20:02:26 +0000 (20:02 +0000)]
Add requested size to r300RefillCurrentDmaRegion.
This way we no longuer have the fixed RADEON_BUFFER_SIZE.
Anyway function calling AllocDmaRegion should check if this
succeed and fail gracefuly if not (see bug 8348).
Brian Paul [Thu, 2 Nov 2006 19:23:41 +0000 (19:23 +0000)]
remove GetBufferSize = NULL; assignment
Brian Paul [Thu, 2 Nov 2006 19:18:09 +0000 (19:18 +0000)]
Fixes Glean vertex/fragment test failures. Those tests never called
glViewport so the viewport was 0 by 0 pixels.
Brian Paul [Thu, 2 Nov 2006 19:16:08 +0000 (19:16 +0000)]
remove GetBufferSize code
Brian Paul [Thu, 2 Nov 2006 18:35:19 +0000 (18:35 +0000)]
always load frag prog state params for now (see comments)
Brian Paul [Thu, 2 Nov 2006 18:15:26 +0000 (18:15 +0000)]
remove unneeded extern declaration of lockMutex
Brian Paul [Thu, 2 Nov 2006 18:13:40 +0000 (18:13 +0000)]
bump driver date
Brian Paul [Thu, 2 Nov 2006 17:51:04 +0000 (17:51 +0000)]
Use RGBA_LOGICOP_ENABLED() instead of ctx->Color._LogicOpEnabled since we often
need to check for this condition before the later field has been computed.
Fixes logicop bug #8860.
Brian Paul [Thu, 2 Nov 2006 17:49:47 +0000 (17:49 +0000)]
new RGBA_LOGICOP_ENABLED() macro
Brian Paul [Thu, 2 Nov 2006 16:21:04 +0000 (16:21 +0000)]
s/_mesa_IsProgram2/_mesa_IsProgram/
Brian Paul [Thu, 2 Nov 2006 16:20:29 +0000 (16:20 +0000)]
Rename _mesa_IsProgram() to _mesa_IsProgramARB() to avoid collision with the
OpenGL 2.0 function of the same name.
Brian Paul [Thu, 2 Nov 2006 16:11:31 +0000 (16:11 +0000)]
OpenGL 2.0 entrypoints
Brian Paul [Thu, 2 Nov 2006 16:09:10 +0000 (16:09 +0000)]
run indent on the code
Brian Paul [Thu, 2 Nov 2006 15:47:30 +0000 (15:47 +0000)]
test OpenGL 2.0 stencil funcs
Brian Paul [Thu, 2 Nov 2006 00:41:40 +0000 (00:41 +0000)]
Add ATI_separate_stencil and use it in preference to EXT_stencil_two_side
since the former is what's used for OpenGL 2.0.
Brian Paul [Wed, 1 Nov 2006 22:28:54 +0000 (22:28 +0000)]
update _mesa_select_tex_image() and _mesa_get_tex_image()
Brian Paul [Wed, 1 Nov 2006 20:48:00 +0000 (20:48 +0000)]
update comments
Brian Paul [Wed, 1 Nov 2006 19:35:22 +0000 (19:35 +0000)]
Remove x/y/width/height parameters from Clear functions.
Brian Paul [Wed, 1 Nov 2006 19:26:18 +0000 (19:26 +0000)]
comment-out unused var
Brian Paul [Wed, 1 Nov 2006 19:25:43 +0000 (19:25 +0000)]
remove unused vars
Brian Paul [Wed, 1 Nov 2006 19:25:19 +0000 (19:25 +0000)]
fix _mesa_select_tex_image() calls
Michal Krol [Wed, 1 Nov 2006 19:02:27 +0000 (19:02 +0000)]
Write back gl_FragDepth to span->array->z.
Brian Paul [Wed, 1 Nov 2006 18:51:43 +0000 (18:51 +0000)]
Don't use the x/y/width/height params passed to Clear(). Get them
after locking. Next: remove the params altogether.
Brian Paul [Wed, 1 Nov 2006 18:49:41 +0000 (18:49 +0000)]
disable debug printf
Brian Paul [Wed, 1 Nov 2006 18:48:28 +0000 (18:48 +0000)]
disable debug printfs
Jerome Glisse [Wed, 1 Nov 2006 16:21:14 +0000 (16:21 +0000)]
Correct a little bug, radeon->glCtx is a pointer.
Jerome Glisse [Wed, 1 Nov 2006 16:18:08 +0000 (16:18 +0000)]
Remove deprecated GetBufferSize interface.
Brian Paul [Wed, 1 Nov 2006 15:24:47 +0000 (15:24 +0000)]
recent updates/fixes
Keith Whitwell [Wed, 1 Nov 2006 15:23:50 +0000 (15:23 +0000)]
fix compiler warnings
Keith Whitwell [Wed, 1 Nov 2006 15:20:23 +0000 (15:20 +0000)]
Patch from <haihao.xiang@intel.com> -- pass program string
notification callback through to tnl/ module, fixes glean crash.
Keith Whitwell [Wed, 1 Nov 2006 14:26:10 +0000 (14:26 +0000)]
merge the (rest of) texmem branch
Keith Whitwell [Wed, 1 Nov 2006 14:21:57 +0000 (14:21 +0000)]
Merge texmem-0-3-branch.
Jerome Glisse [Wed, 1 Nov 2006 12:03:36 +0000 (12:03 +0000)]
Add LIT instruction to fragment program.
Keith Whitwell [Wed, 1 Nov 2006 12:03:11 +0000 (12:03 +0000)]
Import texmem i915 driver to its new location as i915tex.
Jerome Glisse [Wed, 1 Nov 2006 11:58:16 +0000 (11:58 +0000)]
Add CMPH instruction to fragprog
CMPH a0, a1, a2 -> if a2 > 0.5 return a1 else return a0
Guessed by examinating LIT instruction handling of FGLRX.
Keith Whitwell [Wed, 1 Nov 2006 09:35:26 +0000 (09:35 +0000)]
Patch from <haihao.xiang@intel.com> -- pass program string
notification callback through to tnl/ module, fixes glean crash.
Brian Paul [Wed, 1 Nov 2006 00:14:04 +0000 (00:14 +0000)]
change DEBUG_FRAG conditions
Brian Paul [Wed, 1 Nov 2006 00:13:16 +0000 (00:13 +0000)]
fix some bugs in interpolate_specular()
Brian Paul [Wed, 1 Nov 2006 00:12:41 +0000 (00:12 +0000)]
Added a few new ctx->Const. fields for shader-related limits.
Brian Paul [Tue, 31 Oct 2006 19:53:38 +0000 (19:53 +0000)]
make use of Parameters->StateFlags in _swrast_update_fragment_program()
Brian Paul [Tue, 31 Oct 2006 19:53:03 +0000 (19:53 +0000)]
minor clean-ups, simplifications and new comments
Brian Paul [Tue, 31 Oct 2006 19:14:27 +0000 (19:14 +0000)]
fix MINGW32 problems
Brian Paul [Tue, 31 Oct 2006 16:02:56 +0000 (16:02 +0000)]
We need to call _mesa_load_state_parameters() whenever a fragment program
is enabled and we've changed any GL state that might be referenced by a
fragment program (such as state.fog.params). Do this during swrast
validation, not in _swrast_exec_fragment_program().
Brian Paul [Tue, 31 Oct 2006 16:01:11 +0000 (16:01 +0000)]
signal _NEW_LIGHT in _tnl_copy_to_current()
Brian Paul [Tue, 31 Oct 2006 14:29:01 +0000 (14:29 +0000)]
In TEX instructions, use precomputed lambda only if using fragment.texcoord[k]
to sample texture[k]. Use zero otherwise. Not foolproof, but a good
compromise.
Brian Paul [Tue, 31 Oct 2006 01:22:38 +0000 (01:22 +0000)]
For TEX instructions use lambda=0. When sampling from texture unit K we
were using the partial derivatives of texcoord[K] but the coordinate used
for texture sampling may be something totally different (and texcoord[K]
might not be a real texture coord at all). Net result was a bogus LOD is
sometimes used, often resulting in using the smallest mipmap level (a
constant color).
Just use zero for now (undef LAMBDA_ZERO to override).
Plus, some additional debug code.
Ian Romanick [Mon, 30 Oct 2006 23:44:54 +0000 (23:44 +0000)]
Fix bug #8799.
Properly resize bith the drawable and the readable in mgaUpdateRects.
Eliminate the use of the deprecated GetBufferSize interface. Bump
driver date.
Ian Romanick [Mon, 30 Oct 2006 22:17:39 +0000 (22:17 +0000)]
Refactor mgaXMesaSetFrontClipRects and mgaXMesaSetBackClipRects.
Combine mgaXMesaSetFrontClipRects and mgaXMesaSetBackClipRects into a
single new function called mga_set_cliprects. This enables a small
refactor in mgaDDDrawBuffer.
Ian Romanick [Mon, 30 Oct 2006 22:07:00 +0000 (22:07 +0000)]
Get DRI drawable from framebuffer object.
In the software rasterization fallbacks, get the __DRIdrawablePrivate
pointer from the driRenderbuffer that is passed in. This eliminates
the need for the mesa_drawable pointer in MGA context structure.
This partially fixes bug #8799. wincopy no longer produces a black
window for the destination window, but it does produce incorrect
results if the destination window is resized.
Brian Paul [Mon, 30 Oct 2006 00:22:28 +0000 (00:22 +0000)]
code tweaks, remove old comments
Brian Paul [Mon, 30 Oct 2006 00:13:31 +0000 (00:13 +0000)]
fix _mesa_problem() text
Brian Paul [Mon, 30 Oct 2006 00:12:05 +0000 (00:12 +0000)]
Move gl_vertex_program_machine struct out of mtypes.h and put into nvvertexec.h.
Massage nvvertexec.c code to work more like s_nvfragprog.c - another step
toward unifying vertex/fragment program execution.
Brian Paul [Mon, 30 Oct 2006 00:07:22 +0000 (00:07 +0000)]
remove debug code
Brian Paul [Sun, 29 Oct 2006 21:17:18 +0000 (21:17 +0000)]
Rather than always allocating 100 instructions, put instructions into a
temporary buffer, then copy into a malloc'd array of the correct size.
According to Glean texCombine, we never need more than 21 instructions.
Brian Paul [Sun, 29 Oct 2006 18:33:14 +0000 (18:33 +0000)]
New _mesa_exec_vertex_state_program() function. Start of some re-org.
Brian Paul [Sun, 29 Oct 2006 18:14:00 +0000 (18:14 +0000)]
fix wrong inequality
Brian Paul [Sun, 29 Oct 2006 18:03:16 +0000 (18:03 +0000)]
Change _mesa_init_instruction() to initialize an array of instructions.
Brian Paul [Sun, 29 Oct 2006 17:55:16 +0000 (17:55 +0000)]
Program instructions are initialized before parsing so no need to set
Abs, NegateAbs, CondMask and CondSwizzle fields to defaults here.
CondMask was getting mis-set. Removing the incorrect assignment improves
fragment program speed by 15%.
Brian Paul [Sat, 28 Oct 2006 23:10:17 +0000 (23:10 +0000)]
Added PROGRAM_CONSTANT to get_register_pointer().
More DEBUG_FRAG code.
Brian Paul [Sat, 28 Oct 2006 23:08:07 +0000 (23:08 +0000)]
special case END in _mesa_print_instruction()
Brian Paul [Sat, 28 Oct 2006 17:14:47 +0000 (17:14 +0000)]
Implement _mesa_append_fog_code() for fragment program fog options.
Brian Paul [Thu, 26 Oct 2006 20:54:28 +0000 (20:54 +0000)]
If DEBUG, check that all array indices really do fall in [start,end] in
the DrawRangeElements() call. Warn the user if that's not true.
Roland Scheidegger [Thu, 26 Oct 2006 12:09:07 +0000 (12:09 +0000)]
remove code for inserting mvp transform into position-invariant vertex progs and instead use _mesa_insert_mvp_code().
Brian Paul [Wed, 25 Oct 2006 23:10:14 +0000 (23:10 +0000)]
Previously, if a fragment program referenced fragment.fogcoord but the
program didn't use the ARB_fog_linear option, the fragment program's
fragment.fogcoord register wasn't loaded properly.
Roland Scheidegger [Wed, 25 Oct 2006 12:14:26 +0000 (12:14 +0000)]
change some bogus comments regarding the base e exponential function used for fog in vertex programs.
Roland Scheidegger [Tue, 24 Oct 2006 22:37:51 +0000 (22:37 +0000)]
fix (per-vertex) fog when using ARB_vp by incorporating fog factor computation into the vertex program (not yet fixed for swtnl). Simplify (and correct) the VTX_TCL_OUTPUT_VTXFMT handling when using vertex programs, turns out it's solely driven by the needs of the past-vertex stage of the pipeline, this should fix lockups with ill-specified applications using vertex programs (for instance applications enabling fog but not writing to fog coord output will now get (conformant) undefined results instead of lockups).
Ian Romanick [Tue, 24 Oct 2006 20:50:08 +0000 (20:50 +0000)]
Add missing call to glutInit.
Brian Paul [Tue, 24 Oct 2006 13:46:39 +0000 (13:46 +0000)]
s/GLchan/GLubyte/
Brian Paul [Tue, 24 Oct 2006 13:45:08 +0000 (13:45 +0000)]
whitespace clean-up
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