diff options
author | Aaron Plattner <aplattner@nvidia.com> | 2007-04-16 02:23:26 -0700 |
---|---|---|
committer | Aaron Plattner <aplattner@nvidia.com> | 2007-04-24 16:38:04 -0700 |
commit | 339e30cb49a48344ec7b0dfd701b958b07ed32e5 (patch) | |
tree | ab7c482035d2baad7f5c700f48a2cfe590ee1076 /src/g80_exa.c | |
parent | c6e4105ce40ef053e026cc0ffe4925ab568ea700 (diff) |
G80: EXA infrastructure.
No acceleration yet.
Diffstat (limited to 'src/g80_exa.c')
-rw-r--r-- | src/g80_exa.c | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/src/g80_exa.c b/src/g80_exa.c new file mode 100644 index 0000000..7f487ff --- /dev/null +++ b/src/g80_exa.c @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2007 NVIDIA, Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "g80_type.h" +#include "g80_dma.h" + +static void +waitMarker(ScreenPtr pScreen, int marker) +{ + G80Sync(xf86Screens[pScreen->myNum]); +} + +static Bool +prepareSolid(PixmapPtr pPixmap, + int alu, + Pixel planemask, + Pixel fg) +{ + return FALSE; +} + +static Bool +checkComposite(int op, + PicturePtr pSrcPicture, + PicturePtr pMaskPicture, + PicturePtr pDstPicture) +{ + return FALSE; +} + +static Bool +prepareCopy(PixmapPtr pSrcPixmap, + PixmapPtr pDstPixmap, + int dx, + int dy, + int alu, + Pixel planemask) +{ + return FALSE; +} + +Bool G80ExaInit(ScreenPtr pScreen, ScrnInfoPtr pScrn) +{ + G80Ptr pNv = G80PTR(pScrn); + ExaDriverPtr exa; + const int pitch = pScrn->displayWidth * (pScrn->bitsPerPixel / 8); + + exa = pNv->exa = exaDriverAlloc(); + if(!exa) return FALSE; + + exa->exa_major = EXA_VERSION_MAJOR; + exa->exa_minor = EXA_VERSION_MINOR; + exa->memoryBase = pNv->mem; + exa->offScreenBase = pitch * pScrn->virtualY; + exa->memorySize = pitch * pNv->offscreenHeight; + exa->pixmapOffsetAlign = 256; + exa->pixmapPitchAlign = 256; + exa->flags = EXA_OFFSCREEN_PIXMAPS; + exa->maxX = 8192; + exa->maxY = 8192; + + /**** Rendering ops ****/ + exa->PrepareSolid = prepareSolid; + //exa->Solid = solid; + //exa->DoneSolid = doneSolid; + exa->PrepareCopy = prepareCopy; + //exa->Copy = copy; + //exa->DoneCopy = doneCopy; + exa->CheckComposite = checkComposite; + //exa->PrepareComposite = prepareComposite; + //exa->Composite = composite; + //exa->DoneComposite = doneComposite; + + exa->WaitMarker = waitMarker; + + return exaDriverInit(pScreen, exa); +} |