summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300/radeon_context.c
AgeCommit message (Collapse)Author
2008-05-15r300: set screen so that context init can find out chip idsDave Airlie
2008-02-29Use __DRIextension mechanism providing loader functionality to the driver.Kristian Høgsberg
Instead of passing in a fixed struct, the loader now passes in a list of __DRIextension structs, to advertise the functionality it can provide to the driver. Each extension is individually versioned and can be extended or phased out as the interface develops.
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-10-29Refactor and fix core vblank supportJesse Barnes
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.
2007-10-10Replace open-coded major, minor, and patch version fields with __DRIversionRec.Kristian Høgsberg
2007-05-07radeon: enable xpress chipsetsDave Airlie
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.
2007-04-29r300: Page flipping fixes.Michel Dänzer
Mostly making sure the page flipping state is respected when necessary.
2007-04-29r300: radeonMakeCurrent cleanups.Michel Dänzer
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.
2007-03-17r300: change vendor string to DRI R300 ProjectDave Airlie
2007-03-09r300: Also update window state when it's already bound but its stamp changed.Michel Dänzer
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.
2007-03-06r300: Call radeonSetCliprects from radeonMakeCurrent.Michel Dänzer
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.
2006-11-09Remove unnecessary setting of GetBufferSize to NULL.Ian Romanick
2006-11-02Add requested size to r300RefillCurrentDmaRegion.Jerome Glisse
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).
2006-11-01Remove deprecated GetBufferSize interface.Jerome Glisse
2006-10-15Remove Driver.ResizeBuffers = _mesa_resize_framebuffer lines.Brian Paul
This is already done by the preceeding call to _mesa_init_driver_functions() which plugs in default functions like that.
2006-09-28Make driDrawableInitVBlank() initialize the sequence number.Michel Dänzer
This prevents the first wait for vertical blank from timing out when the X server has been running for a long time.
2006-09-26Remove r200 dependency.Jerome Glisse
Remove r200*.h files dependency.
2006-08-15Enable support for GL_EXT_gpu_program_parameters for R300.Ian Romanick
2006-07-11_mesa_destroy_context() frees radeon->glCtx so we must not access it afterwardsTilman Sauerbeck
2006-06-29destroy left-over VBOs on shutdownTilman Sauerbeck
2006-06-02remove code dealing with drmMinor version < 6 since all radeon drivers ↵Roland Scheidegger
request at least drmMinor 6 anyway.
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-13Clean build.Aapo Tahkola
2005-12-17Add some missing hooks. This should fix various little problems with window ↵Aapo Tahkola
movement and 2d windows flashing on top of 3d windows. This problem was previously shadowed by r300ResetHwState as it gets called frequently.
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-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-06Updated for EXT_framebuffer_object changes. I don't know if this is correct, ↵Ben Skeggs
but it seems to work
2005-04-24Modifying to build against current Mesa. Disabled r200*.c files since they ↵Aapo Tahkola
didnt want to build anymore.
2004-10-17- FIX: flickeringNicolai Haehnle
- Scissor support works now
2004-09-28Initial revisionNicolai Haehnle