0,0 → 1,122 |
/************************************************************************** |
|
Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and |
VA Linux Systems Inc., Fremont, California. |
|
All Rights Reserved. |
|
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 (including the |
next paragraph) 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 COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS 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. |
|
**************************************************************************/ |
|
/* |
* Authors: |
* Kevin E. Martin <martin@valinux.com> |
* Gareth Hughes <gareth@valinux.com> |
*/ |
|
#ifndef __RADEON_SCREEN_H__ |
#define __RADEON_SCREEN_H__ |
|
/* |
* IMPORTS: these headers contain all the DRI, X and kernel-related |
* definitions that we need. |
*/ |
#include "dri_util.h" |
#include "radeon_dri.h" |
#include "radeon_chipset.h" |
#include "radeon_reg.h" |
#include "drm_sarea.h" |
#include "xmlconfig.h" |
|
|
typedef struct { |
drm_handle_t handle; /* Handle to the DRM region */ |
drmSize size; /* Size of the DRM region */ |
drmAddress map; /* Mapping of the DRM region */ |
} radeonRegionRec, *radeonRegionPtr; |
|
typedef struct radeon_screen { |
int chip_family; |
int chip_flags; |
int cpp; |
int card_type; |
int device_id; /* PCI ID */ |
int AGPMode; |
unsigned int irq; /* IRQ number (0 means none) */ |
|
unsigned int fbLocation; |
unsigned int frontOffset; |
unsigned int frontPitch; |
unsigned int backOffset; |
unsigned int backPitch; |
|
unsigned int depthOffset; |
unsigned int depthPitch; |
|
/* Shared texture data */ |
int numTexHeaps; |
int texOffset[RADEON_NR_TEX_HEAPS]; |
int texSize[RADEON_NR_TEX_HEAPS]; |
int logTexGranularity[RADEON_NR_TEX_HEAPS]; |
|
radeonRegionRec mmio; |
radeonRegionRec status; |
radeonRegionRec gartTextures; |
|
drmBufMapPtr buffers; |
|
__volatile__ uint32_t *scratch; |
|
__DRIscreen *driScreen; |
unsigned int sarea_priv_offset; |
unsigned int gart_buffer_offset; /* offset in card memory space */ |
unsigned int gart_texture_offset; /* offset in card memory space */ |
unsigned int gart_base; |
|
GLboolean depthHasSurface; |
|
/* Configuration cache with default values for all contexts */ |
driOptionCache optionCache; |
|
const __DRIextension *extensions[17]; |
|
int num_gb_pipes; |
int num_z_pipes; |
drm_radeon_sarea_t *sarea; /* Private SAREA data */ |
struct radeon_bo_manager *bom; |
|
} radeonScreenRec, *radeonScreenPtr; |
|
struct __DRIimageRec { |
struct radeon_bo *bo; |
GLenum internal_format; |
uint32_t dri_format; |
GLuint format; |
GLenum data_type; |
int width, height; /* in pixels */ |
int pitch; /* in pixels */ |
int cpp; |
void *data; |
}; |
|
extern void radeonDestroyBuffer(__DRIdrawable *driDrawPriv); |
#endif /* __RADEON_SCREEN_H__ */ |