summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/radeon/radeon_context.h
AgeCommit message (Collapse)Author
2009-04-02radeon/r200/r300: collapse context destruction down to a common path.Dave Airlie
Context destruction was nearly the same over all the drivers, so collapse it down.
2009-03-23raedon/r200/r300: mega-FBO commits.Dave Airlie
Re work depth issues. Do a lot more FBO abstactions fixup depth/stencil buffer interactions
2009-03-06radeon: implement userspace clearsDave Airlie
This is pretty much Eric Anholts implementation of clear using the GL state machine from the Intel drivers. It works quite well for now for us, probably could do with trying to use Z engine for clears.
2009-02-12radeon: renaming and headers cleanupDave Airlie
2009-02-12radeon/r200/r300: another big merge upheavel.Dave Airlie
This merges lots of the hw state atom emission and firevertices code. it also removes a lot of the extra radeon crap from r300 and merge scissor
2009-02-09radeon: make more r100 workDave Airlie
2009-02-04radeon: make compile again.Dave Airlie
Not tested but ripped out lots of stuff unneeded anymore time to test later
2009-01-29radeon/r200/r300: bring back old style DMA buffer on top of BOs.Dave Airlie
this gets back a lot of the lots speed in gears on r500 at least I also fixed the legacy bufmgr to deal when the dma space fills up
2009-01-14radeon/r200/r300: consolidate swap buffersDave Airlie
2009-01-14radeon/r200/r300: attempt to move lock to common codeDave Airlie
2009-01-14radeon/r200/r300: initial attempt to convert to common context codeDave Airlie
2009-01-14radeon/r200: move more stuff closer together in contextDave Airlie
2009-01-14radeon/r200: move state atom to common headerDave Airlie
2009-01-13radeon/r200: start splitting out commonalities into separate headersDave Airlie
2008-09-18mesa: added "main/" prefix to includes, remove some -I paths from ↵Brian Paul
Makefile.template
2008-07-14radeon: SetTexOffset supportChris Rankin
This patch is a straightforward duplication of the R200 SetTexOffset code, except that there is no big-endian tx_table[] array.
2008-06-21replace __inline and __inline__ with INLINE macroBrian Paul
2007-10-30More vblank cleanups.Michel Dänzer
* Fix crash at context creation in most drivers supporting vblank. * Don't pass vblank sequence or flags to functions that get passed the drawable private already. * Attempt to initialize vblank related drawable private fields just once per drawable. May need more work in some drivers.
2007-05-09r300: Cleaned up radeon_context.h slightly; mostly Indent.Oliver McFadden
2007-02-03remove now unused vtxfmt stuff from radeon/r200 header filesRoland Scheidegger
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-04-11More GLSL code:Michal Krol
- use macros to access and modify render inputs bit-field; - un-alias generic vertex attributes for ARB vertex calls; - use MAX_VERTEX_PROGRAM_ATTRIBS (NV code) or MAX_VERTEX_ATTRIBS (ARB code) in place of VERT_ATTRIB_MAX; - define VERT_ATTRIB_GENERIC0..15 for un-aliased vertex attributes for ARB_vertex_shader; - fix generic attribute index range check in arbprogparse.c; - interface GLSL varyings between vertex and fragment shader; - use 64-bit optimised bitset (bitset.h) for render inputs;
2006-03-31Dave Reveman's patch for GLX_MESA_copy_sub_buffer supportBrian Paul
2006-03-28fix missing *_STATECHANGE in *UpdateViewportOffset for radeon, r200 and r300 ↵Roland Scheidegger
(reported by Jim Duchek). Fix some potential problems with strict-aliasing with r200 and radeon drivers in *UpdateViewportOffset, *PolygonOffset and *UpdateWindow functions (some compiler warnings about strict-aliasing remain in the codegen vertex code, and there may be more problems unnoticed by the compiler).
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-10-05Remove the tcl fallback for texture rectangle (by manipulating the texture ↵Roland Scheidegger
matrix) (tested with texrect). Enable texgen for r/q coordinates (tested with projtex). Fix projected texcoords when an app uses TexCoord3x and the texture matrix to save on vertex size (fixes ut2k3 shadow projectors in tcl mode). From texgenmix, all cases with all texgen or no texgen work, with the exception of texgen enabled for s/t only, this one works with hw tcl, but not with vtxfmt (suspect issues with vtxfmt), the mixed cases do not work (which is expected, and should be rare in practice), with the exception of the first one which hits a tcl fallback.
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-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-05-31Bugzilla #2195: Convert the radeon driver to the t_vertex interface. This cutsEric Anholt
about 200 lines from the code and 25k from the binary, while matching other drivers more closely. In the worst case (tcl_mode=0) it appears to have a performance cost of 4.4% +/- 0.3% on quake3 (800x600 demofours, 1ghz p3, rv200). Tested on ut2004, ut, q3, projtex. Submitted by: Andreas Stenglein <a.stenglein@gmx.net>
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.
2005-01-31Bug #2428: #ifdef GLX_DIRECT_RENDERING in DRI drivers is pointless.Adam Jackson
2005-01-23add sync debugging to the radeon driverDave Airlie
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-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-25The 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. Provides a 10-15% improvement in ipers performance in my tests, along with other apps. Tested with: ipers, glxgears, quake3
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-02Replace drmHandle, drmContext, drmDrawable, drmMagic and related types withIan Romanick
drm_handle_t, drm_context_t, drm_drawable_t, drm_magic_t.
2004-04-26bring over build fixes from stable branchAlan Hourihane
2004-03-12Adjust includes to help DRI buildJon Smirl
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-04New, less expensive workaround for state-change lockups.Felix Kuehling
2003-12-07merge some more of the radeon DRI driver from the DRI trunkAlan Hourihane
2003-12-05xmlconfig fixesAlan Hourihane
2003-11-24Import vtx-0-2-branchKeith Whitwell
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