radeon_exa_shared.h revision 0974d292
11.247Shannken/* 21.190Sad * Copyright 2005 Eric Anholt 31.190Sad * Copyright 2005 Benjamin Herrenschmidt 41.190Sad * Copyright 2008 Advanced Micro Devices, Inc. 51.190Sad * All Rights Reserved. 61.190Sad * 71.190Sad * Permission is hereby granted, free of charge, to any person obtaining a 81.190Sad * copy of this software and associated documentation files (the "Software"), 91.190Sad * to deal in the Software without restriction, including without limitation 101.190Sad * the rights to use, copy, modify, merge, publish, distribute, sublicense, 111.190Sad * and/or sell copies of the Software, and to permit persons to whom the 121.190Sad * Software is furnished to do so, subject to the following conditions: 131.190Sad * 141.190Sad * The above copyright notice and this permission notice (including the next 151.190Sad * paragraph) shall be included in all copies or substantial portions of the 161.190Sad * Software. 171.190Sad * 181.190Sad * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 191.190Sad * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 201.190Sad * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 211.190Sad * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 221.190Sad * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 231.190Sad * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 241.190Sad * SOFTWARE. 251.190Sad * 261.190Sad * Authors: 271.190Sad * Eric Anholt <anholt@FreeBSD.org> 281.24Scgd * Zack Rusin <zrusin@trolltech.com> 291.1Scgd * Benjamin Herrenschmidt <benh@kernel.crashing.org> 301.22Smycroft * Alex Deucher <alexander.deucher@amd.com> 311.22Smycroft * Matthias Hopf <mhopf@suse.de> 321.1Scgd */ 331.1Scgd#ifndef RADEON_EXA_SHARED_H 341.1Scgd 351.1Scgd#define RADEON_EXA_SHARED_H 361.1Scgd 371.1Scgdextern PixmapPtr RADEONGetDrawablePixmap(DrawablePtr pDrawable); 381.1Scgd 391.1Scgdextern void RADEONVlineHelperClear(ScrnInfoPtr pScrn); 401.1Scgdextern void RADEONVlineHelperSet(ScrnInfoPtr pScrn, int x1, int y1, int x2, int y2); 411.116Sagcextern Bool RADEONValidPM(uint32_t pm, int bpp); 421.1Scgdextern Bool RADEONCheckBPP(int bpp); 431.1Scgd 441.1Scgd#define RADEON_TRACE_FALL 0 451.1Scgd#define RADEON_TRACE_DRAW 0 461.1Scgd 471.1Scgd#if RADEON_TRACE_FALL 481.1Scgd#define RADEON_FALLBACK(x) \ 491.1Scgddo { \ 501.1Scgd ErrorF("%s: ", __FUNCTION__); \ 511.1Scgd ErrorF x; \ 521.1Scgd return FALSE; \ 531.1Scgd} while (0) 541.1Scgd#else 551.1Scgd#define RADEON_FALLBACK(x) return FALSE 561.1Scgd#endif 571.48Sfvdl 581.1Scgd#if RADEON_TRACE_DRAW 591.1Scgd#define TRACE do { ErrorF("TRACE: %s\n", __FUNCTION__); } while(0) 601.40Smikel#else 611.88Slukem#define TRACE 621.47Smrg#endif 631.99Sjdolecek 641.17Scgd#ifdef XF86DRM_MODE 651.180Sadstatic inline void radeon_add_pixmap(struct radeon_cs *cs, PixmapPtr pPix, int read_domains, int write_domain) 661.189Sad{ 671.189Sad struct radeon_exa_pixmap_priv *driver_priv = exaGetPixmapDriverPrivate(pPix); 681.59Smrg 691.59Smrg radeon_cs_space_add_persistent_bo(cs, driver_priv->bo, read_domains, write_domain); 701.91Sthorpej} 711.78Smrg 721.46Smrgextern void radeon_ib_discard(ScrnInfoPtr pScrn); 731.82Smrg#endif /* XF86DRM_MODE */ 741.3Smycroft 751.114Syamtextern void radeon_vb_discard(ScrnInfoPtr pScrn); 761.145Syamtextern int radeon_cp_start(ScrnInfoPtr pScrn); 771.114Syamtextern void radeon_vb_no_space(ScrnInfoPtr pScrn, int vert_size); 781.1Scgdextern void radeon_vbo_done_composite(PixmapPtr pDst); 791.22Smycroft 801.22Smycroft#endif 811.22Smycroft