aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/r300/radeon_context.c
Commit message (Collapse)AuthorAgeFilesLines
* More vblank cleanups.Michel Dänzer2007-10-301-5/+9
| | | | | | | | * 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.
* Refactor and fix core vblank supportJesse Barnes2007-10-291-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Consolidate support for synchronizing to and retrieving vblank counters. Also fix the core vblank code to return monotonic MSC counters, which are required by some GLX extensions. Adding support for multiple pipes to a low level driver is fairly easy, the Intel 965 driver provides simple example code (see intel_buffers.c:intelWindowMoved()). The new code bumps the media stream counter extension version to 2 and adds a new getDrawableMSC callback. This callback takes a drawablePrivate pointer, which is used to calculate the MSC value seen by clients based on the actual vblank counter(s) returned from the kernel. The new drawable private fields are as follows: - vblSeq - used for tracking vblank counts for buffer swapping - vblFlags - flags (e.g. current pipe), updated by low level driver - msc_base - MSC counter from the last time the current pipe changed - vblank_base - kernel DRM vblank counter from the last time the pipe changed Using the above variables, the core vblank code (in vblank.c) can calculate a monotonic MSC value. The low level DRI drivers are responsible for updating the current pipe (by setting VBLANK_FLAG_SECONDARY for example in vblFlags) along with msc_base and vblank_base whenever the pipe associated with a given drawable changes (again, see intelWindowMoved for an example of this). Drivers should fill in the GetDrawableMSC DriverAPIRec field to point to driDrawableGetMSC32 and add code for pipe switching as outlined above to fully support the new scheme.
* Replace open-coded major, minor, and patch version fields with __DRIversionRec.Kristian Høgsberg2007-10-101-1/+1
|
* radeon: enable xpress chipsetsDave Airlie2007-05-071-0/+6
| | | | | | | glxgears and googleearth now run so that seems like a good start Thanks to Aapo Tahkola for doing the 3D work on this so far, I got lost after the GART changes.
* r300: Page flipping fixes.Michel Dänzer2007-04-291-0/+2
| | | | Mostly making sure the page flipping state is respected when necessary.
* r300: radeonMakeCurrent cleanups.Michel Dänzer2007-04-291-6/+0
| | | | | | r300UpdateWindow is superfluous or even possibly wrong here; _mesa_make_current will set the viewport when necessary. So the conditional _mesa_set_viewport call can go as well.
* r300: change vendor string to DRI R300 ProjectDave Airlie2007-03-171-1/+4
|
* r300: Also update window state when it's already bound but its stamp changed.Michel Dänzer2007-03-091-4/+4
| | | | | | | And set new cliprects before deriving other state from them. This ensures cliprects aren't accessed after having been freed. Thanks to Panagiotis Papadakos for testing various iterations of this.
* r300: Call radeonSetCliprects from radeonMakeCurrent.Michel Dänzer2007-03-061-0/+3
| | | | | | | | | | Based on a patch by Panagiotis Papadakos. Among other things, this makes sure the framebuffer object associated with the drawable has the correct size when _mesa_make_current is called, so the default viewport is set up correctly. Also update radeon->lastStamp in radeonSetCliprects.
* Remove unnecessary setting of GetBufferSize to NULL.Ian Romanick2006-11-091-1/+0
|
* Add requested size to r300RefillCurrentDmaRegion.Jerome Glisse2006-11-021-3/+5
| | | | | | This way we no longuer have the fixed RADEON_BUFFER_SIZE. Anyway function calling AllocDmaRegion should check if this succeed and fail gracefuly if not (see bug 8348).
* Remove deprecated GetBufferSize interface.Jerome Glisse2006-11-011-20/+8
|
* Remove Driver.ResizeBuffers = _mesa_resize_framebuffer lines.Brian Paul2006-10-151-1/+0
| | | | | This is already done by the preceeding call to _mesa_init_driver_functions() which plugs in default functions like that.
* Make driDrawableInitVBlank() initialize the sequence number.Michel Dänzer2006-09-281-1/+2
| | | | | This prevents the first wait for vertical blank from timing out when the X server has been running for a long time.
* Remove r200 dependency.Jerome Glisse2006-09-261-15/+1
| | | | Remove r200*.h files dependency.
* Enable support for GL_EXT_gpu_program_parameters for R300.Ian Romanick2006-08-151-1/+1
|
* _mesa_destroy_context() frees radeon->glCtx so we must not access it afterwardsTilman Sauerbeck2006-07-111-5/+6
|
* destroy left-over VBOs on shutdownTilman Sauerbeck2006-06-291-1/+5
|
* remove code dealing with drmMinor version < 6 since all radeon drivers ↵Roland Scheidegger2006-06-021-4/+2
| | | | request at least drmMinor 6 anyway.
* switch to card_type rather than IsPCI, doesn't change any functionality yetDave Airlie2006-04-041-1/+1
|
* Dave Reveman's patch for GLX_MESA_copy_sub_buffer supportBrian Paul2006-03-311-1/+26
|
* Clean build.Aapo Tahkola2006-03-131-0/+2
|
* Add some missing hooks. This should fix various little problems with window ↵Aapo Tahkola2005-12-171-0/+2
| | | | movement and 2d windows flashing on top of 3d windows. This problem was previously shadowed by r300ResetHwState as it gets called frequently.
* First step of Radeon DRI unification:Eric Anholt2005-11-021-3/+3
| | | | | | | | | | | | - 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.
* Fixes the glXGetProcAddress portion of the interface. Most of the functionsIan Romanick2005-07-261-13/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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...
* Updated for EXT_framebuffer_object changes. I don't know if this is correct, ↵Ben Skeggs2005-05-061-3/+4
| | | | but it seems to work
* Modifying to build against current Mesa. Disabled r200*.c files since they ↵Aapo Tahkola2005-04-241-2/+6
| | | | didnt want to build anymore.
* - FIX: flickeringNicolai Haehnle2004-10-171-0/+17
| | | | - Scissor support works now
* Initial revisionNicolai Haehnle2004-09-281-0/+302