summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r200/r200_context.h
AgeCommit message (Collapse)Author
2004-11-03enable GL_EXT_fog_coord. Calculate fog factors and submit them instead of ↵Roland Scheidegger
fog coords (it seems the chip cannot do fog factor computation when not using fragment depth as fog coord source). vtxfmt uses fallback for now (most code present but some magic would be needed if replaying vertices is necessary later on).
2004-10-16Add code to support projective texturing and fix mixed enabling of textureEric Anholt
coordinate generation. Original code by Roland Schiedegger, with changes by myself. While here, ensure that the swtcl path does tnl_install_attrs enough when fog/specular are being (en/dis)abled. Notable effects: - projtex test works with TCL and is closer with swtcl (Bugzilla #1461) - 8/9 squares work in texgenmix instead of 3. - texcyl "reflect" mode works (GL_SPHERE_MAP is now a fallback -- unclear if the hardware can actually support it). - flickering in doom3 replaced by just plain darkness. - blocktube fixed (Bugzilla #984) - fixes stex3d
2004-09-30OK, one more time. Simplify the state-backup system by just storing the fullEric Anholt
state in a ready-to-emit cmdbuf, which avoids the issue Nicolai Haehnle reported where the check() could return differently during backup-and-emit than it should have if it were called at the right time. Move the lit emission before most of the TCL state emission on r200, which fixes neverball issues. Tested with: r100/r200 with neverball, tuxracer, chromium, quake3, ipers
2004-09-22The previous code would emit a full set of state during the first EmitState onEric Anholt
a new cmdbuf, to ensure that state wasn't lost across UNLOCK/LOCK pairs (in the case of context switching). This was rather inefficient. Instead, after flushing a cmdbuf, mark the state as needing to be saved on UNLOCK. Then, at the beginning of flushing a cmdbuf, if we actually have lost the context, go back and emit a new cmdbuf with the full set of state, before continuing with the cmdbuf flush. Also, remove the dirty/clean atom lists, since atoms are emitted in a fixed order these days, and go with a simpler single list. Provides a 14% improvement in ipers performance in my tests, along with other apps.
2004-08-17Close some races with locking on R100 and R200 which could manifest as renderingEric Anholt
errors on r100 and rendering errors and hangs on r200 (same for R100 without OLD_PACKETS). If a command buffer filled after some state (EmitState or a VBPNTR write) was emitted, the lock was grabbed, the buffer flushed, a new buffer prepared, and the lock dropped. Another client could come in, set its own state as part of rendering, and when the first client flushed the rendering commands depending on the previous state, it got the 2nd client's state. This is fixed by checking for enough space before beginning a set of state emits and rendering, and flushing the buffer first if so. This guarantees that the buffer won't wrap. Also, move the "lost_context = 1" from the end of cmdbuf flushing to UNLOCK_HARDWARE for clarity (at a minimum) that any time the lock is dropped, state may get overwritten. We don't have enough information at the point of the LOCK_HARDWARE to reset our state to the last UNLOCK_HARDWARE point in the case that we did lose our context, but saving the information to rebuild that state may be a useful optimization (ipers data suggests up to 5%).
2004-06-02add support for more than 2 texture units (max 6, default 4). use hang ↵Roland Scheidegger
workarounds only for r200, not derivatives.
2004-06-02Replace drmHandle, drmContext, drmDrawable, drmMagic and related types withIan Romanick
drm_handle_t, drm_context_t, drm_drawable_t, drm_magic_t.
2004-05-28remove never finished verts path (r200_maos_vbtmp.h, r200_maos_verts.c) and ↵Roland Scheidegger
unused R200_OLD_PACKET macro
2004-05-20Add support for GL_EXT_blend_[func|equation]_separate. Fix ↵Roland Scheidegger
GL_EXT_blend_color. Remove support for GL_EXT_blend_logic_op (cannot be supported together with blend_equation_separate unless a software fallback would be added).
2004-05-05Added support for the 3rd texture coordinate for cubemaps and 3DIan Romanick
textures. progs/demos/cubemap and progs/demos/stex3d seem to work correctly at all tcl_mode settings. x86 / SSE codegen is currently disabled.
2004-04-26bring over build fixes from stable branchAlan Hourihane
2004-04-23Convert R200 driver to use the t_vertex interface.Ian Romanick
2004-03-11Adjustments to make everything use IOCTL/sarea defines in DRM insteadJon Smirl
of glx/mini. removes glx/mini/drm.h glx/mini/sarea.h
2004-01-23Fix attenuation hardware state handling, inspired by the R200 DDK referenceMichel Dänzer
driver (our r200 driver basically didn't do this at all, maybe got lost along the way?)
2004-01-21Silence some compiler warnings.Ian Romanick
2004-01-20Before calling _mesa_create_context(), initialize a dd_function_table structBrian Paul
by calling _mesa_init_driver_functions() and then plugging in the driver- specific functions. In particular, make sure ctx->Driver.NewTextureObject points to the appropriate driver function so that _all_ texture objects are augmented with the driver-specific data. Put in a bunch of assertions in the texture-related driver functions that texObj->DriverData is valid. Remove old dead code in near future.
2004-01-09Roland Scheidegger's r200_changeemitorder.diff.Keith Whitwell
2003-12-11Updates to tnl_dd_dmatmp.hKeith Whitwell
- Allocate vertices explicitly, rather than trying to talk about dma buffers. - Clean up the various Flush() operations. - Don't allow fallbacks any longer. Provide a support function to detect them ahead o ftime Updates to tnl_dd_vbtmp.h - Get rid of power-of-two vertex strides. Pack all vertices tightly. - Get texunit 2,3 emit working coorrectly. Other stuff: - Get rid of lingering Ubyte color support. - Fix a few compiler warnings.
2003-12-07sync some more of the r200 driver from the DRI trunkAlan Hourihane
2003-12-05xmlconfig fixesAlan Hourihane
2003-10-21Update DRI drivers to current DRI CVS and make them work.Jon Smirl
2003-08-22patch to import Jon Smirl's work from BitkeeperBrian Paul
2003-08-06r200 driver, brought over by Jon SmirlKeith Whitwell