2005-06-28 16:48:56 +04:00
/*
* Copyright 2004 The Unichrome Project . 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 , sub license ,
* 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 NON - INFRINGEMENT . IN NO EVENT SHALL
* THE UNICHROME PROJECT , 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 .
*
2007-10-20 01:21:04 +04:00
* Author : Thomas Hellström 2004.
2005-06-28 16:48:56 +04:00
*/
# ifndef _VIA_VERIFIER_H_
# define _VIA_VERIFIER_H_
2005-09-25 08:28:13 +04:00
typedef enum {
no_sequence = 0 ,
2005-06-28 16:48:56 +04:00
z_address ,
dest_address ,
tex_address
2005-09-25 08:28:13 +04:00
} drm_via_sequence_t ;
2005-06-28 16:48:56 +04:00
2005-09-25 08:28:13 +04:00
typedef struct {
2005-06-28 16:48:56 +04:00
unsigned texture ;
2005-09-25 08:28:13 +04:00
uint32_t z_addr ;
uint32_t d_addr ;
uint32_t t_addr [ 2 ] [ 10 ] ;
2005-06-28 16:48:56 +04:00
uint32_t pitch [ 2 ] [ 10 ] ;
uint32_t height [ 2 ] [ 10 ] ;
2005-09-25 08:28:13 +04:00
uint32_t tex_level_lo [ 2 ] ;
2005-06-28 16:48:56 +04:00
uint32_t tex_level_hi [ 2 ] ;
uint32_t tex_palette_size [ 2 ] ;
2007-01-08 13:21:41 +03:00
uint32_t tex_npot [ 2 ] ;
2005-06-28 16:48:56 +04:00
drm_via_sequence_t unfinished ;
int agp_texture ;
int multitex ;
2007-07-11 09:53:27 +04:00
struct drm_device * dev ;
2005-11-12 13:52:46 +03:00
drm_local_map_t * map_cache ;
2005-06-28 16:48:56 +04:00
uint32_t vertex_count ;
int agp ;
const uint32_t * buf_start ;
} drm_via_state_t ;
2010-07-11 17:32:42 +04:00
extern int via_verify_command_stream ( const uint32_t * buf , unsigned int size ,
struct drm_device * dev , int agp ) ;
2007-07-11 09:53:27 +04:00
extern int via_parse_command_stream ( struct drm_device * dev , const uint32_t * buf ,
2005-11-12 13:52:46 +03:00
unsigned int size ) ;
2005-06-28 16:48:56 +04:00
# endif