summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/radeon/radeon_screen.c
AgeCommit message (Collapse)Author
2007-02-12r300: Add proper support for sin/cos instruction in fragment programRune Peterson
Getting proper SIN and COS wasn't as easy as it appeared. I had to make make some changes to the fragment program code. general FP changes: - support HHH swizzle for vector instructions. - don't copy a source to a temp when it is not XYZW swizzled, but combine the two and have the swizzle resolve any issues. (saves temps/instructions with more elaborate shader code) - fix overflow in cnstv[].
2007-01-18support as much of GL_EXT_stencil_two_side as we can. untested.Aapo Tahkola
2006-10-18Enable GLX_SGI_make_current_read for radeon.Ian Romanick
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).
2006-10-13implement ARB_point_parameters and ARB_point_sprite on r200. The code is ↵Roland Scheidegger
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.
2006-08-31Give the user posibility to choose speed over correctness.Rune Petersen
It does 2 things: 1) Allows you to disable S3TC, wine-games sometimes need S3TC enabled. 2) Disable fallbacks that usually have low impact.
2006-08-27close #6318Aapo Tahkola
2006-08-19remove the now confusing option to manually enable software ARB_vp if drm is ↵Roland Scheidegger
not new enough on r200
2006-05-27preparation for r200 hw vertex programs. Increase R200_CMD_BUF_SZ to 16k ↵Roland Scheidegger
instead of 8k (the reasons why it was exactly 8k are unclear). Add register defines, sanity code, fix potential issue with wrong statechange order when disabling fragment programs.
2006-05-18Dont allow 16 tex units to be used at all.Aapo Tahkola
2006-05-12the r300 should only use 8 until Mesa can deal with thisDave Airlie
2006-04-04use gart base from drm not try to work it out ourselves.. bump radeon clientDave Airlie
to need 1.6 drm where this first appeared.. this fixes r300 on PCIE
2006-04-04switch to card_type rather than IsPCI, doesn't change any functionality yetDave Airlie
2006-03-31Dave Reveman's patch for GLX_MESA_copy_sub_buffer supportBrian Paul
2006-03-31free rs300 and ban r350(according to r300.sf.net)Aapo Tahkola
2006-03-31disable r300 chips. R300_FORCE_R300 to forceAapo Tahkola
2006-03-27make allow_large_textures 1 by default for radeon and r200, and consequently ↵Roland Scheidegger
enable all texture units by default on those cards (3 for radeon, 6 for r200). Fix the usually forgotten DRIVER_DATE accordingly.
2006-03-07Enable HW VBOs and other things needed by it.Aapo Tahkola
2006-02-25Add all pci ids known by ddx to radeon dri driver. Remove the entries not ↵Roland Scheidegger
known by ddx (probably secondary ids, non-existant cards and similar). Add rs400 to the family enum, and configure the rv410 like a 2 quad chip (?)
2006-02-03replace the texture level hack used in radeon/r200 to allow larger textures ↵Roland Scheidegger
with different methods to calculate the announced maximum texture sizes. Default is still the same (that is, radeon/r200 default to not announce anything which might not fit, i830/i915 default to 1 texture must fit). Bug #5785.
2006-01-20Try to tackle bug #5148Aapo Tahkola
2006-01-07cube maps on r100 require newer drm than the same feature on r200 ↵Roland Scheidegger
(regression from introducing unfied initialization). Fix wrong (so far unused) family assignment for r100 cards.
2005-12-05update r300 drm minimum to 20Dave Airlie
2005-12-02Added PCI_CHIP_RV410_5E4B (Adam Kirchhoff)Brian Paul
2005-11-29If the DDX driver didn't reserve any video RAM for textures, fall back toMichel Dänzer
using only GART memory for textures instead of segfaulting in the texture management code. (Bug 5115)
2005-11-28check for driver_modes == NULL. Don't need driver_modes for EGL driverBrian Paul
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-10-15enable cube maps on radeon (#2241 on bugzilla). No vtxfmt code yet (just ↵Roland Scheidegger
generates vfmt fallback). Code by Andreas Stenglein, some small adjustments by me.
2005-10-13enable 3rd texture unit on radeon (default still 2 enabled units). Disable ↵Roland Scheidegger
some multitexcoord codegen stuff noone understands to make it work. Replace most code testing explicitly for unit 0 and 1 with loops instead of adding test for unit 2, smaller/more readable code at the cost of maybe some slight performance hit. (Code provided by Andreas Stenglein, some adjustments by me.)
2005-09-14make some functions staticBrian Paul
2005-09-13just some reformattingBrian Paul
2005-09-04Add new void *addr and __DRIdrawablePrivate parameters toBrian Paul
driNewRenderbuffer().
2005-09-02set depthHasSurface for stencil renderbufferBrian Paul
2005-09-01Finish up some of the gl_renderbuffer work.Brian Paul
Use driRenderbuffer's offset, pitch fields in the span routines. Remove the SetBuffer driver function. Consolidate the code for setting CTX_RB3D_COLOROFFSET and CTX_RB3D_COLORPITCH state in new radeonUpdateDrawBuffer() function.
2005-08-15Add Egberts fixes for 64bit architecturesAlan Hourihane
Add additional checks for the *DRIRec info structure passed in from the device driver. This ensures that things fallback to indirect rendering if the DDX driver has had modifications (i.e. removal of the drmAddress field).
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-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-05-04Major check-in of changes for GL_EXT_framebuffer_object extension.Brian Paul
Main driver impacts: - new code for creating the Mesa GLframebuffer - new span/pixel read/write code Some drivers not yet updated/tested.
2005-03-18Add support for production version of ATI RN50/ES1000. (ATI TechnologiesMichel Dänzer
Inc.)
2005-02-26Add a dri config option to enable the max texture level hackDave Airlie
make ycbcr depend on a CHIPSET define .. needs to be filled in though
2005-02-18fd.o bug #2576: Add support for ATI RN50/ES1000. (ATI Technologies Inc.)Michel Dänzer
2005-01-26(Stephane Marchesin, me) Add support for color (framebuffer) tiling to the ↵Roland Scheidegger
radeon and r200 driver
2004-12-16Also PUBLICize the config option tableAdam Jackson
2004-12-15Mark __driCreateNewScreen PUBLICAdam Jackson
2004-12-14uint*t -> u_int*t changesAlan Hourihane
2004-12-08(Stephane Marchesin, me) add hyperz support to radeon and r200 drivers. Only ↵Roland Scheidegger
fast z clear and z buffer compression are supported for now, hierarchical-z is not. Still problems with multiple apps and z/stencil readback, which is why hyperz is disabled per default. Also add the new point sprite packet drm 1.13 accepts to the sanity code.
2004-12-03enable GL_EXT_stencil_wrap (patch from idr), including some hacks for ↵Roland Scheidegger
original radeons which have some broken stencil ops.
2004-11-10add some chip idsRoland Scheidegger
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.