summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r200/r200_texstate.c
AgeCommit message (Collapse)Author
2008-04-29r200: fix state submission issue causing bogus textures (bug 15730)Ove Kaaven
2008-03-31DRI interface changes and DRI2 direct rendering support.Kristian Høgsberg
Add DRI2 direct rendering support to libGL and add DRI2 client side protocol code. Extend the GLX 1.3 create drawable functions in glx_pbuffer.c to call into the DRI driver when possible. Introduce __DRIconfig, opaque struct that represents a DRI driver configuration. Get's rid of the open coded __GLcontextModes in the DRI driver interface and the context modes create and destroy functions that the loader was requires to provide. glcore.h is no longer part of the DRI driver interface. The DRI config is GL binding agnostic, that is, not specific to GLX, EGL or other bindings. The core API is now also an extension, and the driver exports a list of extensions as the symbol __driDriverExtensions, which the loader must dlsym() for. The list of extension will always include the DRI core extension, which allows creating and manipulating DRI screens, drawables and contexts. The DRI legacy extension, when available, provides alternative entry points for creating the DRI objects that work with the XF86DRI infrastructure. Change DRI2 client code to not use drm drawables or contexts. We never used drm_drawable_t's and the only use for drm_context_t was as a unique identifier when taking the lock. We now just allocate a unique lock ID out of the DRILock sarea block. Once we get rid of the lock entirely, we can drop this hack. Change the interface between dri_util.c and the drivers, so that the drivers now export the DriverAPI struct as driDriverAPI instead of the InitScreen entry point. This lets us avoid dlsym()'ing for the DRI2 init screen function to see if DRI2 is supported by the driver.
2007-11-28r200: Fix texture format regression on big endian systems.Michel Dänzer
See https://bugs.freedesktop.org/show_bug.cgi?id=13324 . Also use tx_table_be for VALID_FORMAT, in case r200SetTexImages ever gets called for MESA_FORMAT_RGB888.
2007-11-06r200: Fix SetTexOffset format for 16 bit pixmaps/textures.Michel Dänzer
Use symbolic array indices to clarify.
2007-09-29r200: Implement SetTexOffset hook.Chris Rankin
Implementation guidance by Michel Dänzer, final testing by Timo Aaltonen.
2007-05-17remove CVS/XFree86 keywordsChristoff Brill
2006-11-02casting, type changes to silence warningsBrian Paul
2006-09-20try to use a 8888 texture format which will result in only a memcopy in ↵Roland Scheidegger
mesa's texstore functions whenever possible for r200 and r300. r200 can use hw formats argb8888, rgba8888 and abgr8888 (or the opposite on big endian), r300 can use argb8888, bgra8888, rgba8888 and abgr8888 regardless of endian, as it supports free component swizzling.
2006-09-20fix mixed texgen/non-texgen with texgen modes requiring plane parameters ↵Roland Scheidegger
(GL_OBJECT_LINEAR, GL_EYE_LINEAR). This is a chip limitation, try to hack it up regardless or use a tcl fallback in some cases. Might still produce wrong results if fixed up, but so far this corrects celestia ring shadows (in multitexture mode), doom3 (arb renderer), quake4 (arb renderer and some less visible bugs in r200 renderer), and even the remaining texgenmix broken case (this is pure luck though, it is easy to construct artifical cases where it will break).
2006-09-13Always mark tex state atom as dirty when the texture image is dirty, this ↵Roland Scheidegger
ensures texture cache gets flushed in case the new texture has the same offset as the old one (fixes glean pixelFormat test at least on r200).
2006-09-13fix GL_REFLECTION_MAP texgen by not using tex matrix negation when lighting ↵Roland Scheidegger
is not enabled (?). This fixes demos/cubemap as well as glean texCube test.
2005-11-02First step of Radeon DRI unification:Eric Anholt
- Makes all three drivers use the same screen structure and setup code, with a few ifdefs for the separate compilation to deal with symbols not being available to all drivers and the fact that we have no mechanism for dealing with different config options for different chip families in the same driver. These issues should be dealt with later. - Introduces IS_R[123]00_CLASS(radeonScreenPtr) macro for code for taking different paths depending on the general class of chipset. - Adds many new R300-class PCI IDs, though not all those listed in radeon_driver.c.
2005-09-12add complete support for ATI_fragment_shader for the r200. Most of the new ↵Roland Scheidegger
code is in the new file r200_fragshader.c. Reverse engeneered by Dave Airlie and me
2005-08-31enable GL_ARB_texture_env_crossbar on r200, separate the enable bits for ↵Roland Scheidegger
texture sampling and texture environment, optimize away texture sampling for units if the result is not used, always emit the env instructions in-order and try to eliminate GL_REPLACE env instructions.
2005-05-31Bugzilla #2708: Disable the fallback on GL_SPHERE_MAP. It appears to hurt moreEric Anholt
than it helps, and we seem to have a handle on how to fix it.
2005-02-10add texture micro and macro tiling to radeon/r200 driver. This can improve ↵Roland Scheidegger
performance up to 15% in texture-intensive applications. Convert the driver to use the correct blit format and blit width instead of fixed blit format and blit width when uploading textures to make it work.
2004-10-18Fix compile errors when DEBUG is defined.Ian Romanick
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-10-16Always turn on the TAM_DEBUG3=0x6 workaround on real r200s. It appears thatEric Anholt
the current cases for turning it on were insufficient (Bugzilla #1519, 729, 814) and it has no significant performance impact. Performance tested with quake3 in GL_LINEAR mode both with and without anisotropy, with the workaround always on or always off.
2004-10-09This statechange is vtx state, not tcl.Eric Anholt
2004-10-07Add Roland Scheidegger's S3TC patch. This patch does not implement theEric Anholt
(patented) S3TC/DXTC algorithms, but adds an option to dlopen a library module providing functions to do so. Because it uses dlopen, it is only enabled if USE_EXTERNAL_DXTN_LIB=1 is defined (which is only in linux-dri config, so far). It adds support for S3TC to several DRI drivers, and adds a DRI config option to force enabling S3TC even if the software compression/decompression is unavailable. This may allow people to use apps that require S3TC even though they don't have a license to implement the patented material themselves, if those apps use precompressed textures. Ideally we would get permission from the current holder of the patents to implement the algorithm in Mesa, at which point the dlopen mess could go away. Until then, this allows some to run applications they couldn't otherwise, and hopefully will provide us with more push to get the final step of getting that permission done.
2004-09-24-O -Wall warnings cleanups in r200.Eric Anholt
2004-06-19Big-endian texture fixes from Michel Dänzer.Brian Paul
2004-06-17use I8 internal format for GL_INTENSITY, GL_ALPHA and GL_LUMINANCE texture ↵Roland Scheidegger
formats. Fix various small bugs with tex env combine mode GL_DOT3_RGB(A)/GL_DOT3_RGB(A)_EXT
2004-06-03fix minor signedness issue in assertionRoland Scheidegger
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-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-02-06Refactor "class" texture environments to be implemented in terms ofIan Romanick
ARB_texture_env_combine state.
2004-01-27Consolidate texObj->Pos/Neg/X/Y/Z and texObj->Image into a singleKeith Whitwell
array, texObj->Image[face][level].
2004-01-22Corrected a comment about how the DOT3 hardware works in the R200.Ian Romanick
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-10-21Update DRI drivers to current DRI CVS and make them work.Jon Smirl
2003-08-06r200 driver, brought over by Jon SmirlKeith Whitwell