summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300
AgeCommit message (Collapse)Author
2005-07-29Fix a == vs !- typo for glx_enable_extensionJon Smirl
2005-07-28Use the routines supplied in the __DRIinterfaceMethods structure to create aIan Romanick
destroy __GLcontextModes structures. This eliminates the need for DRI drivers to ever link with glcontextmodes.c.
2005-07-28glxEnableExtension is a platform-specific function exported by the loader.Ian Romanick
Therefore, drivers should not require it to run.
2005-07-28Major rip-up of internal function insertion interface. The oldIan Romanick
_glapi_add_entrypoint has been replaced by a new routine called _glapi_add_dispatch. This new routine dynamically assignes dispatch offsets to functions added. This allows IHVs to add support for extension functions that do not have assigned dispatch offsets. It also means that a driver has no idea what offset will be assigned to a function. The vast majority of the changes in this commit account for that. An additional table, driDispatchRemapTable, is added. Functions not in the Linux OpenGL ABI (i.e., anything not in GL 1.2 + ARB_multitexture) has a fixed offset in this new table. The entry in this table specifies the offset in of the function in the real dispatch table. The internal interface was also bumped from version 20050725 to 20050727. This has been tested with various programs in progs/demos on: radeon (Radeon Mobility M6) r128 (Rage 128 Pro) mga (G400)
2005-07-27test for the proper drm version, at least 1.17 is requiredRoland Scheidegger
2005-07-26Fixes the glXGetProcAddress portion of the interface. Most of the functionsIan Romanick
that are currently obtained via glXGetProcAddress and all of the XF86DRI functions are replaced with a funciton table. This table will be passed to __driCreateNewScreen. One of the functions in the table is getProcAddress. This allows some loaders to expose functionality not in all loaders. This will be immediatly used for glxEnableExtension (formerly known to drivers as __glXScrEnableExtension). libGL (and in the future libglx) expose this function so that drivers can enable GLX extensions. libEGL should exposed eglEnableExtension to enable EGL extensions. The same function cannot be used for both because the extensions have different names and (possibly) different semantics. Drivers can optionally use one, both, or neither. The key parts are in the __DRIinterfaceMethodsRec structure in dri_interface.h. A pointer to one of these structures is passed into __driCreateNewScreen. Because of this, the version of the API is bumped to 20050725. Since the previous version(s) were never in a release, their existance is erased. I was actually a little surprised by how much code this cuts from the drivers. A lot of glXGetProcAddress calls disappear, and a lot of version checks go with them. Nice. The one thing I'm not sure of is removing __glXInitialize. For some reason that function was in the glXGetProcAddress table, but *nothing* in the Mesa tree used it. Did something with DRI conf. use this function? It seems odd...
2005-07-24All elements of pre-DRI_NEW_INTERFACE_ONLY are removed. This allowsIan Romanick
1,402 lines of code to be removed from Mesa (drivers and libGL). The big winner is dri_util.c. Primary changes are: 1. Remove all "deprecated" entry-points from the various structures in dri_interface.h. 2. Rename the remaining fields to removed "version numbers." So, bindContext3 becomes bindContext. Functions with "New" in the name (e.g., CreateNewContext) were *not* changed, but that is an option. Having "New" in the name is less annoying to me than having "3" in the name. 3. Remove all compatibility code that handles cases where the driver or the loader is too old to support the latest interfaces. 4. Append the API version to the __driCreateNewScreen function name. This is currently done by hand. In the future (i.e., the next time we make an incompatible change to the interface) we'll want to come up with a better way to do this. This prevents old loaders from being able to load new (incompatible) drivers. 5. Bump the API version to 20050722. All drivers (by way of dri_util.c) require this version. 6. All drivers are *required* to expose GLX_SGIX_fbconfig and GLX_OML_swap_method (or the moral equivalents). Support for these functions in implicit in the use of the "new" interface. 7. Some cases still exist that need to be compiled differently in a loader or core Mesa versus in a driver. These are identified by the define IN_DRI_DRIVER.
2005-07-20Clean up warnings in r300 code by making some symbols static, adding prototypesEric Anholt
for others, and being cleaner with types in fragment/vertex program structures. One warning in r300_shader.c is still concerning.
2005-07-02Expose the fact that we do not do either selection of feedback buffers - ↵Vladimir Dergachev
either with software or hardware rendering.
2005-07-01Adding RV350_NJ ID.Jerome Glisse
2005-07-01Adapt extension string to new GL dispatch schema proposedJerome Glisse
by Idr. This patch is based on Idr patch to radeon driver. Change #if 1 to #if 0 (r300_context.c:l69) for old dispatch tab.
2005-06-30-"fix" page flippingAapo Tahkola
-use depth tiling if tiling is enabled
2005-06-27Uncomment a couple of helper functions.Vladimir Dergachev
Fix slipup from CVS update that was commented out and did not show up during compilation.
2005-06-27Rename unchecked state to match DRM driver.Vladimir Dergachev
Emit wait idle and pacify r300 before emitting state - this seems to improve stability.
2005-06-21Back out the actual enabling of depth tiling.Nicolai Haehnle
Depth tiling breaks software fallbacks and depth buffer reads. radeon_span.c **must** be updated for anything that is related to tiling.
2005-06-21Add PCI ID for R420 JI.Nicolai Haehnle
The driver appears to work reliably (i.e. lockup-free) with a card based on this chip. However, I have not explored whether we could get anything in terms of 3D performance "for free" just by setting some magic bits in those registers that are still a mystery to us.
2005-06-21r300 driver side of color tiling support.Aapo Tahkola
2005-06-21Make sure texture base addresses are used correctly.Nicolai Haehnle
They are relative to the card's address space, not relative to fbLocation, which will be important once we program MC_FB/AGP_LOCATION in the way they are programmed on older Radeon chips.
2005-06-16Fix gloss breakage when using hw tnl.Aapo Tahkola
2005-06-16Use depth tiling.Aapo Tahkola
2005-06-16Support 16-bit modes.Aapo Tahkola
2005-06-16Fix problems with elts when immediate mode is on.Aapo Tahkola
2005-06-16Turn off VBO's.Aapo Tahkola
2005-06-16lost_context never gets reset.Aapo Tahkola
2005-06-12Fixed typos.Vladimir Dergachev
2005-06-10Add definition for memory controller latency registers..Vladimir Dergachev
2005-06-08- Secondary colourBen Skeggs
- Calculate tc_count in EmitArrays (enabled units != nr texcoords).
2005-06-06TEX to outputBen Skeggs
2005-06-05Fix xyz/w interaction (needs a cleanup still..)Ben Skeggs
Use SRC0A instead of WZY/XXX combination for W in XYZ positions. Remove dodgy hack from POW opcode, now works correctly without it
2005-05-31Causes lockups on some rare cases.Aapo Tahkola
2005-05-28Some fixesJerome Glisse
2005-05-28Up MAX_AOS_ARRAYS to 16. Do we need more?Ben Skeggs
2005-05-28Play with swizzling a bit.Ben Skeggs
2005-05-28Programmable per-vertex point sizes and proper result reg assigns.Aapo Tahkola
2005-05-27More optimal r300Clear.Aapo Tahkola
2005-05-26constant trackingBen Skeggs
2005-05-25- Remove one of the loops in emit_arithBen Skeggs
- Handle REPL_ALPHA in emit_arith (possibly incorrect for some things) - Start on getting demos/arbfplight.c to look right. Won't be animated yet, need to re-work const emit so we can update consts without re-translating the entire program. Assertion in r300_state.c::setup_rs_unit needs to be disabled for it to work.
2005-05-23Implement enough of ARB_fragment_program for Keith's texenv programBen Skeggs
generation in Mesa. Requires most recent Mesa cvs to work correctly. Swizzle code is possibly slow/buggy and will probably be replaced. Old behaviour can be controlled by a #define in r300_context.h, if no-one minds I'll remove the old code later on. Also, disabled cube map extension. AFAIK We don't support it yet, and it causes issues with UT2004.
2005-05-22Small change to handle native case (7 natives case)Jerome Glisse
2005-05-22Adding r300 fragment program swizzle tab. Please someJerome Glisse
one reread macro at begining see if i made any error. A full reread would also be usefull there may be some errors for some swizzle despite the great care i took to done them :)
2005-05-19Ditch unused code and features that arent in subject to get supported any ↵Aapo Tahkola
near time.
2005-05-18Stick texture LOD back on.Aapo Tahkola
2005-05-18Polygon mode fixes.Aapo Tahkola
2005-05-14Make gleans polyoffset test happy.Aapo Tahkola
2005-05-14Dont assume GLbooleans are ones when true.Aapo Tahkola
2005-05-14Cleanup blend state generation.Nicolai Haehnle
Do not set the NO_SEPARATE bit, as it causes problems with some combinations of blend functions.
2005-05-14The kernel doesn't like command buffers over 64KB, so we don'tNicolai Haehnle
allocate buffers bigger than that.
2005-05-14Remove dead span functions code.Nicolai Haehnle
2005-05-14Fix span functions for stencil buffer access.Nicolai Haehnle
2005-05-14Don't print debug messages unless the user explicitly requested themNicolai Haehnle
using the RADEON_DEBUG environment variable.