aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/unichrome/via_ioctl.c
Commit message (Collapse)AuthorAgeFilesLines
* Use __DRIextension mechanism providing loader functionality to the driver.Kristian Høgsberg2008-02-291-3/+6
| | | | | | | 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.
* More vblank cleanups.Michel Dänzer2007-10-301-2/+1
| | | | | | | | * 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-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* screen offset changes, bug 9965Miguel Marte2007-03-181-14/+10
|
* Implement GLX_SGI_make_current_readIan Romanick2006-11-101-14/+20
| | | | | | | | | | | | Discontinue use of the old GetBuffeSize interface. Track both the current read-drawable and the current draw-drawable. After moving some context state to via_rednerbuffer, GLX_SGI_make_current_read can be enabled. The extension works, but the wincopy test prodcues a black window for the destination window. After messing around with the window and looking at the code, I believe the problem is in the handling of buffer swap requests on a drawable that isn't the current draw-drawable.
* Remove x/y/width/height parameters from Clear functions.Brian Paul2006-11-011-3/+4
|
* Want to stop passing x/y/width/height to Clear() function.Brian Paul2006-10-181-2/+9
| | | | | | | The coordinates need to be computed after we've got the hw lock. Code updated to: 1. Ignore all/x/y/width/height/ params passed to Clear func. 2. Pass 0,0,0,0,0 to _swrast_Clear() until they're totally removed.
* updates to dri drivers for recent stencil changesKeith Whitwell2006-05-081-1/+1
|
* Bring in last minute 6_4 branch changes to the unichrome driverThomas Hellström2005-11-161-9/+14
| | | | to the trunk.
* SetBuffer, renderbuffer changesBrian Paul2005-09-031-13/+13
|
* Fixes the glXGetProcAddress portion of the interface. Most of the functionsIan Romanick2005-07-261-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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...
* Major check-in of changes for GL_EXT_framebuffer_object extension.Brian Paul2005-05-041-10/+10
| | | | | | | Main driver impacts: - new code for creating the Mesa GLframebuffer - new span/pixel read/write code Some drivers not yet updated/tested.
* merge unichrome changes from branchKeith Whitwell2005-03-221-103/+315
|
* Get PolygonStipple working.. (or seemingly too). It seems to do the rightAlan Hourihane2005-01-141-12/+2
| | | | things now given the demos I've used and passes glean's paths test.
* 16bpp doesn't support masked clears, so fallback when they're enabled.Alan Hourihane2005-01-141-0/+10
|
* Fix glean scissor testAlan Hourihane2005-01-131-2/+2
|
* Don't emit HC_SubA_HSPXYOS on CLE266.Keith Whitwell2005-01-121-3/+11
|
* Add a big nasty fallback for AlphaTest -- seems to always be wrongKeith Whitwell2005-01-111-2/+5
| | | | | on CLE266 because Z values are written even for fragments which fail the test.
* Small Unichrome fixes:Thomas Hellström2005-01-061-0/+3
| | | | | | 1. Unlock hardware before aborting and dumping DMA buffers. Otherwise display system may deadlock. 2. Fix DMA init IOCTL call that got mixed up in one of the previous commits. 3. Fix AGP command alignment
* make alloc-dma functions inline, rearrange some debugKeith Whitwell2005-01-051-60/+23
|
* Bring VIA driver up-to-date with regard to drm_*_t changes and removeAlan Hourihane2005-01-051-3/+3
| | | | | | | the xf86drmVIA.[ch] files. Bring in the IRQ handler and Ring buffer code, but ring buffer is disabled as it is with the Xserver. It certainly locks up the CLE266.
* Change to use the t_vertex.c mechanisms for building vertices,Keith Whitwell2005-01-041-4/+8
| | | | | | including Felix's ptex code. Re-enable some assembly for performance.
* Get scissor test working again. Passes glean scissor test.Keith Whitwell2004-12-301-21/+37
|
* Simplify viaBlit a bit more.Keith Whitwell2004-12-301-54/+36
| | | | Implement masked clears.
* Fix some wrapping bugs in the last commit. Probably there are moreKeith Whitwell2004-12-291-18/+36
| | | | remaining.
* Simplfy clear() and swapbuffers() code.Keith Whitwell2004-12-291-541/+324
| | | | | | | Fix various mishandling of cliprects. Allow multiple primitives to be emitted to a single dma buffer, which was largely impossible previously. Re-enable the fast unclipped render stage.
* Don't pingpong cliprects through sarea on CopyBuffer().Keith Whitwell2004-12-291-34/+5
|
* Large updateKeith Whitwell2004-12-291-332/+281
| | | | | | | | | - Remove via duplicates of shared template files - Update driver to work with current versions of the above - Rework dma accounting - Rework emitting to dma to use a consistent set of macros The handling of cliprects in the driver is still pretty questionable.
* Chop out more dead code.Keith Whitwell2004-12-231-29/+11
| | | | | Get the drawXoff adjustment working a bit better. Seems to pass the glean orthoPos tests.
* Fix merge error.Keith Whitwell2004-12-221-55/+0
|
* Remove dead code.Keith Whitwell2004-12-221-701/+300
| | | | Fix 24/8 depth/stencil visuals.
* Remove debug code which referenced an old global variable.Keith Whitwell2004-12-211-0/+4
|
* Push a number of global variables into the viaContext struct.unichrome-last-xineramaKeith Whitwell2004-12-211-31/+32
| | | | Remove the bogus 'current_vmesa' pointer.
* Add missing swap-control calculations.Keith Whitwell2004-12-211-11/+4
| | | | Remove debug printf.
* Add vsync swapbuffers. This waits on the irq so gears run in this modeKeith Whitwell2004-12-211-4/+47
| | | | | | | will have a very low cpu utilization (and also a very low framerate). Fix up the pageflipping code. This works now but is totally oblivious to the X server (ie. it works but it's broken). Turned off by a #define.
* Remove #ifdef DEBUG's in code, but still allow compiler to remove debugKeith Whitwell2004-12-201-56/+2
| | | | code if DEBUG not defined.
* Unichrome DRI:Thomas Hellström2004-12-151-998/+327
| | | | | | | | | | | | | | | | | Updated the driver to the new VIA security mechanisms in DRM. All command submissions now passes through DRM ioctls. If the DRM AGP ring-buffer is not enabled, it will use a DRM mechanism for submitting commands to the hardware via a PCI bus mechanism. Removed all direct write accesses to the hardware. Among other things the VQ was previously turned off for the PCI path, apparently for Tuxracer. That seemed unneeded and was removed. No visible impact on Tuxracer. Abstracted all buffer blit operations in via_ioctl.c. The blitter context is now reprogrammed before each blitting operation. Updated driver date and drm version requirement. (Bugzilla Bug #1950, Thomas Hellstr�m)
* Massively cleaned up the code that calculates front/back/depth bufferIan Romanick2004-10-081-77/+0
| | | | | | pitch and size. Cut out a bunch of dead code. This fixes bugzilla #1555.
* added support for GL_ARB_draw_buffersBrian Paul2004-10-021-11/+11
|
* Don't mix variable definitions and other statements (fixed build on oldEric Anholt2004-05-081-1/+2
| | | | compiler).
* Adjustments to make everything use IOCTL/sarea defines in DRM insteadJon Smirl2004-03-111-6/+6
| | | | of glx/mini. removes glx/mini/drm.h glx/mini/sarea.h
* updates from Erdi ChenBrian Paul2004-02-231-18/+89
|
* Via Unichrome/cle266 driver (Erdi Chen)Brian Paul2004-01-301-0/+2217