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