Bring in last minute 6_4 branch changes to the unichrome driver
to the trunk.
This commit is contained in:
@@ -1,20 +1,49 @@
|
||||
#ifndef _VIA_DRI_
|
||||
#define _VIA_DRI_
|
||||
|
||||
#include "xf86drm.h"
|
||||
/*
|
||||
* Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
|
||||
* Copyright 2001-2003 S3 Graphics, Inc. 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 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.
|
||||
*/
|
||||
/*
|
||||
* Keep this file in perfect sync between the ddx and dri drivers.
|
||||
* At least bump the VIA_DRIDDX_VERSION defines appropriately.
|
||||
*
|
||||
*/
|
||||
#ifndef _VIA_DRI_H_
|
||||
#define _VIA_DRI_H_ 1
|
||||
|
||||
#define VIA_MAX_DRAWABLES 256
|
||||
|
||||
#define VIA_VERSION_MAJOR 4
|
||||
#define VIA_VERSION_MINOR 1
|
||||
#define VIA_DRIDDX_VERSION_MAJOR 5
|
||||
#define VIA_DRIDDX_VERSION_MINOR 0
|
||||
#define VIA_DRIDDX_VERSION_PATCH 0
|
||||
|
||||
#ifndef XFree86Server
|
||||
typedef int Bool;
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
drm_handle_t handle;
|
||||
drmSize size;
|
||||
} viaRegion, *viaRegionPtr;
|
||||
|
||||
typedef int Bool;
|
||||
|
||||
typedef struct {
|
||||
viaRegion regs, agp;
|
||||
int deviceID;
|
||||
@@ -46,4 +75,4 @@ typedef struct {
|
||||
int dummy;
|
||||
} VIADRIContextRec, *VIADRIContextPtr;
|
||||
|
||||
#endif
|
||||
#endif /* _VIA_DRI_H_ */
|
||||
|
||||
@@ -1,226 +0,0 @@
|
||||
/*
|
||||
* Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
|
||||
* Copyright 2001-2003 S3 Graphics, Inc. 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
|
||||
* VIA, S3 GRAPHICS, 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.
|
||||
*/
|
||||
#ifndef _VIA_DRM_H_
|
||||
#define _VIA_DRM_H_
|
||||
|
||||
/* WARNING: These defines must be the same as what the Xserver uses.
|
||||
* if you change them, you must change the defines in the Xserver.
|
||||
*/
|
||||
|
||||
#ifndef _VIA_DEFINES_
|
||||
#define _VIA_DEFINES_
|
||||
|
||||
#define VIA_DMA_BUF_ORDER 12
|
||||
#define VIA_DMA_BUF_SZ (1 << VIA_DMA_BUF_ORDER)
|
||||
#define VIA_DMA_BUF_NR 256
|
||||
#define VIA_NR_SAREA_CLIPRECTS 8
|
||||
#define VIA_NR_XVMC_PORTS 10
|
||||
#define VIA_NR_XVMC_LOCKS 5
|
||||
#define VIA_MAX_CACHELINE_SIZE 64
|
||||
#define XVMCLOCKPTR(saPriv,lockNo) \
|
||||
((volatile int *)(((((unsigned long) (saPriv)->XvMCLockArea) + \
|
||||
(VIA_MAX_CACHELINE_SIZE - 1)) & \
|
||||
~(VIA_MAX_CACHELINE_SIZE - 1)) + \
|
||||
VIA_MAX_CACHELINE_SIZE*(lockNo)))
|
||||
|
||||
/* Each region is a minimum of 64k, and there are at most 64 of them.
|
||||
*/
|
||||
#define VIA_NR_TEX_REGIONS 64
|
||||
#define VIA_LOG_MIN_TEX_REGION_SIZE 16
|
||||
#endif
|
||||
|
||||
#define VIA_UPLOAD_TEX0IMAGE 0x1 /* handled clientside */
|
||||
#define VIA_UPLOAD_TEX1IMAGE 0x2 /* handled clientside */
|
||||
#define VIA_UPLOAD_CTX 0x4
|
||||
#define VIA_UPLOAD_BUFFERS 0x8
|
||||
#define VIA_UPLOAD_TEX0 0x10
|
||||
#define VIA_UPLOAD_TEX1 0x20
|
||||
#define VIA_UPLOAD_CLIPRECTS 0x40
|
||||
#define VIA_UPLOAD_ALL 0xff
|
||||
|
||||
/* VIA specific ioctls */
|
||||
#define DRM_VIA_ALLOCMEM 0x00
|
||||
#define DRM_VIA_FREEMEM 0x01
|
||||
#define DRM_VIA_AGP_INIT 0x02
|
||||
#define DRM_VIA_FB_INIT 0x03
|
||||
#define DRM_VIA_MAP_INIT 0x04
|
||||
#define DRM_VIA_DEC_FUTEX 0x05
|
||||
#define NOT_USED
|
||||
#define DRM_VIA_DMA_INIT 0x07
|
||||
#define DRM_VIA_CMDBUFFER 0x08
|
||||
#define DRM_VIA_FLUSH 0x09
|
||||
#define DRM_VIA_PCICMD 0x0a
|
||||
#define DRM_VIA_CMDBUF_SIZE 0x0b
|
||||
|
||||
#define DRM_IOCTL_VIA_ALLOCMEM DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_ALLOCMEM, drm_via_mem_t)
|
||||
#define DRM_IOCTL_VIA_FREEMEM DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_FREEMEM, drm_via_mem_t)
|
||||
#define DRM_IOCTL_VIA_AGP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_AGP_INIT, drm_via_agp_t)
|
||||
#define DRM_IOCTL_VIA_FB_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_FB_INIT, drm_via_fb_t)
|
||||
#define DRM_IOCTL_VIA_MAP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_MAP_INIT, drm_via_init_t)
|
||||
#define DRM_IOCTL_VIA_DEC_FUTEX DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_DEC_FUTEX, drm_via_futex_t)
|
||||
#define DRM_IOCTL_VIA_DMA_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_DMA_INIT, drm_via_dma_init_t)
|
||||
#define DRM_IOCTL_VIA_CMDBUFFER DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_CMDBUFFER, drm_via_cmdbuffer_t)
|
||||
#define DRM_IOCTL_VIA_FLUSH DRM_IO( DRM_COMMAND_BASE + DRM_VIA_FLUSH)
|
||||
#define DRM_IOCTL_VIA_PCICMD DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_PCICMD, drm_via_cmdbuffer_t)
|
||||
#define DRM_IOCTL_VIA_CMDBUF_SIZE DRM_IOWR( DRM_COMMAND_BASE + DRM_VIA_CMDBUF_SIZE, \
|
||||
drm_via_cmdbuf_size_t)
|
||||
|
||||
/* Indices into buf.Setup where various bits of state are mirrored per
|
||||
* context and per buffer. These can be fired at the card as a unit,
|
||||
* or in a piecewise fashion as required.
|
||||
*/
|
||||
|
||||
#define VIA_TEX_SETUP_SIZE 8
|
||||
|
||||
/* Flags for clear ioctl
|
||||
*/
|
||||
#define VIA_FRONT 0x1
|
||||
#define VIA_BACK 0x2
|
||||
#define VIA_DEPTH 0x4
|
||||
#define VIA_STENCIL 0x8
|
||||
|
||||
#define VIA_MEM_VIDEO 0 /* matches drm constant */
|
||||
#define VIA_MEM_AGP 1 /* matches drm constant */
|
||||
#define VIA_MEM_SYSTEM 2
|
||||
#define VIA_MEM_MIXED 3
|
||||
#define VIA_MEM_UNKNOWN 4
|
||||
|
||||
typedef struct {
|
||||
u_int32_t offset;
|
||||
u_int32_t size;
|
||||
} drm_via_agp_t;
|
||||
|
||||
typedef struct {
|
||||
u_int32_t offset;
|
||||
u_int32_t size;
|
||||
} drm_via_fb_t;
|
||||
|
||||
typedef struct {
|
||||
u_int32_t context;
|
||||
u_int32_t type;
|
||||
u_int32_t size;
|
||||
unsigned long index;
|
||||
unsigned long offset;
|
||||
} drm_via_mem_t;
|
||||
|
||||
typedef struct _drm_via_init {
|
||||
enum {
|
||||
VIA_INIT_MAP = 0x01,
|
||||
VIA_CLEANUP_MAP = 0x02
|
||||
} func;
|
||||
|
||||
unsigned long sarea_priv_offset;
|
||||
unsigned long fb_offset;
|
||||
unsigned long mmio_offset;
|
||||
unsigned long agpAddr;
|
||||
} drm_via_init_t;
|
||||
|
||||
typedef struct _drm_via_futex {
|
||||
enum {
|
||||
VIA_FUTEX_WAIT = 0x00,
|
||||
VIA_FUTEX_WAKE = 0X01
|
||||
} func;
|
||||
u_int32_t ms;
|
||||
u_int32_t lock;
|
||||
u_int32_t val;
|
||||
} drm_via_futex_t;
|
||||
|
||||
typedef struct _drm_via_dma_init {
|
||||
enum {
|
||||
VIA_INIT_DMA = 0x01,
|
||||
VIA_CLEANUP_DMA = 0x02,
|
||||
VIA_DMA_INITIALIZED = 0x03
|
||||
} func;
|
||||
|
||||
unsigned long offset;
|
||||
unsigned long size;
|
||||
unsigned long reg_pause_addr;
|
||||
} drm_via_dma_init_t;
|
||||
|
||||
typedef struct _drm_via_cmdbuffer {
|
||||
char *buf;
|
||||
unsigned long size;
|
||||
} drm_via_cmdbuffer_t;
|
||||
|
||||
/* Warning: If you change the SAREA structure you must change the Xserver
|
||||
* structure as well */
|
||||
|
||||
typedef struct _drm_via_tex_region {
|
||||
unsigned char next, prev; /* indices to form a circular LRU */
|
||||
unsigned char inUse; /* owned by a client, or free? */
|
||||
int age; /* tracked by clients to update local LRU's */
|
||||
} drm_via_tex_region_t;
|
||||
|
||||
typedef struct _drm_via_sarea {
|
||||
unsigned int dirty;
|
||||
unsigned int nbox;
|
||||
drm_clip_rect_t boxes[VIA_NR_SAREA_CLIPRECTS];
|
||||
drm_via_tex_region_t texList[VIA_NR_TEX_REGIONS + 1];
|
||||
int ctxOwner; /* last context to upload state */
|
||||
int vertexPrim;
|
||||
|
||||
/*
|
||||
* Below is for XvMC.
|
||||
* We want the lock integers alone on, and aligned to, a cache line.
|
||||
* Therefore this somewhat strange construct.
|
||||
*/
|
||||
|
||||
char XvMCLockArea[VIA_MAX_CACHELINE_SIZE * (VIA_NR_XVMC_LOCKS + 1)];
|
||||
|
||||
unsigned int XvMCDisplaying[VIA_NR_XVMC_PORTS];
|
||||
unsigned int XvMCSubPicOn[VIA_NR_XVMC_PORTS];
|
||||
unsigned int XvMCCtxNoGrabbed; /* Last context to hold decoder */
|
||||
|
||||
/* Used by the 3d driver only at this point, for pageflipping:
|
||||
*/
|
||||
unsigned int pfCurrentOffset;
|
||||
|
||||
} drm_via_sarea_t;
|
||||
|
||||
typedef struct _drm_via_cmdbuf_size {
|
||||
enum {
|
||||
VIA_CMDBUF_SPACE = 0x01,
|
||||
VIA_CMDBUF_LAG = 0x02
|
||||
} func;
|
||||
int wait;
|
||||
u_int32_t size;
|
||||
} drm_via_cmdbuf_size_t;
|
||||
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
int via_fb_init(DRM_IOCTL_ARGS);
|
||||
int via_mem_alloc(DRM_IOCTL_ARGS);
|
||||
int via_mem_free(DRM_IOCTL_ARGS);
|
||||
int via_agp_init(DRM_IOCTL_ARGS);
|
||||
int via_map_init(DRM_IOCTL_ARGS);
|
||||
int via_decoder_futex(DRM_IOCTL_ARGS);
|
||||
int via_dma_init(DRM_IOCTL_ARGS);
|
||||
int via_cmdbuffer(DRM_IOCTL_ARGS);
|
||||
int via_flush_ioctl(DRM_IOCTL_ARGS);
|
||||
int via_pci_cmdbuffer(DRM_IOCTL_ARGS);
|
||||
int via_cmdbuf_size(DRM_IOCTL_ARGS);
|
||||
|
||||
#endif
|
||||
#endif /* _VIA_DRM_H_ */
|
||||
@@ -701,7 +701,7 @@ viaDestroyContext(__DRIcontextPrivate *driContextPriv)
|
||||
}
|
||||
|
||||
if (vmesa) {
|
||||
viaWaitIdle(vmesa);
|
||||
viaWaitIdle(vmesa, GL_FALSE);
|
||||
if (vmesa->doPageFlip) {
|
||||
LOCK_HARDWARE(vmesa);
|
||||
if (vmesa->pfCurrentOffset != 0) {
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
#include "via_screen.h"
|
||||
#include "via_tex.h"
|
||||
#include "via_common.h"
|
||||
#include "via_drm.h"
|
||||
|
||||
struct via_context;
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
*
|
||||
* 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 AUTHOR(S) AND/OR THE COPYRIGHT HOLDER(S) 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.
|
||||
*/
|
||||
#ifndef _VIA_DRMCLIENT_H_
|
||||
#define _VIA_DRMCLIENT_H_
|
||||
|
||||
#define VIA_DMA_BUF_ORDER 12
|
||||
#define VIA_DMA_BUF_SZ (1 << VIA_DMA_BUF_ORDER)
|
||||
#define VIA_DMA_BUF_NR 256
|
||||
|
||||
#endif /* _VIA_DRMCLIENT_H_ */
|
||||
@@ -206,7 +206,7 @@ via_release_pending_textures( struct via_context *vmesa )
|
||||
struct via_tex_buffer *s, *tmp;
|
||||
|
||||
foreach_s( s, tmp, &vmesa->freed_tex_buffers ) {
|
||||
if (s->lastUsed < vmesa->lastBreadcrumbRead) {
|
||||
if (!VIA_GEQ_WRAP(s->lastUsed, vmesa->lastBreadcrumbRead)) {
|
||||
if (VIA_DEBUG & DEBUG_TEXTURE)
|
||||
fprintf(stderr, "%s: release tex sz %d lastUsed %x\n",
|
||||
__FUNCTION__, s->size, s->lastUsed);
|
||||
|
||||
@@ -412,9 +412,9 @@ GLboolean viaCheckBreadcrumb( struct via_context *vmesa, GLuint value )
|
||||
if (VIA_DEBUG & DEBUG_IOCTL)
|
||||
fprintf(stderr, "%s %d < %d: %d\n", __FUNCTION__, value,
|
||||
vmesa->lastBreadcrumbRead,
|
||||
value < vmesa->lastBreadcrumbRead);
|
||||
!VIA_GEQ_WRAP(value, vmesa->lastBreadcrumbRead));
|
||||
|
||||
return value < vmesa->lastBreadcrumbRead;
|
||||
return !VIA_GEQ_WRAP(value, vmesa->lastBreadcrumbRead);
|
||||
}
|
||||
|
||||
static void viaWaitBreadcrumb( struct via_context *vmesa, GLuint value )
|
||||
@@ -422,7 +422,7 @@ static void viaWaitBreadcrumb( struct via_context *vmesa, GLuint value )
|
||||
if (VIA_DEBUG & DEBUG_IOCTL)
|
||||
fprintf(stderr, "%s %d\n", __FUNCTION__, value);
|
||||
|
||||
assert(value < vmesa->lastBreadcrumbWrite);
|
||||
assert(!VIA_GEQ_WRAP(value, vmesa->lastBreadcrumbWrite));
|
||||
|
||||
while (!viaCheckBreadcrumb( vmesa, value )) {
|
||||
viaSwapOutWork( vmesa );
|
||||
@@ -431,7 +431,7 @@ static void viaWaitBreadcrumb( struct via_context *vmesa, GLuint value )
|
||||
}
|
||||
|
||||
|
||||
void viaWaitIdle( struct via_context *vmesa )
|
||||
void viaWaitIdle( struct via_context *vmesa, GLboolean light )
|
||||
{
|
||||
VIA_FLUSH_DMA(vmesa);
|
||||
|
||||
@@ -449,17 +449,20 @@ void viaWaitIdle( struct via_context *vmesa )
|
||||
|
||||
/* Need to wait?
|
||||
*/
|
||||
if (vmesa->lastDma >= vmesa->lastBreadcrumbRead)
|
||||
if (VIA_GEQ_WRAP(vmesa->lastDma, vmesa->lastBreadcrumbRead))
|
||||
viaWaitBreadcrumb( vmesa, vmesa->lastDma );
|
||||
|
||||
if (light) return;
|
||||
|
||||
LOCK_HARDWARE(vmesa);
|
||||
while(!viaCheckIdle(vmesa))
|
||||
;
|
||||
|
||||
UNLOCK_HARDWARE(vmesa);
|
||||
via_release_pending_textures(vmesa);
|
||||
}
|
||||
|
||||
|
||||
void viaWaitIdleLocked( struct via_context *vmesa )
|
||||
void viaWaitIdleLocked( struct via_context *vmesa, GLboolean light )
|
||||
{
|
||||
if (vmesa->dmaLow)
|
||||
viaFlushDmaLocked(vmesa, 0);
|
||||
@@ -479,6 +482,8 @@ void viaWaitIdleLocked( struct via_context *vmesa )
|
||||
if (vmesa->lastDma >= vmesa->lastBreadcrumbRead)
|
||||
viaWaitBreadcrumb( vmesa, vmesa->lastDma );
|
||||
|
||||
if (light) return;
|
||||
|
||||
while(!viaCheckIdle(vmesa))
|
||||
;
|
||||
|
||||
@@ -702,7 +707,7 @@ static int fire_buffer(struct via_context *vmesa)
|
||||
|
||||
/* Fall through to PCI handling?!?
|
||||
*/
|
||||
viaWaitIdleLocked(vmesa);
|
||||
viaWaitIdleLocked(vmesa, GL_FALSE);
|
||||
}
|
||||
|
||||
ret = drmCommandWrite(vmesa->driFd, DRM_VIA_PCICMD, &bufI, sizeof(bufI));
|
||||
@@ -946,7 +951,7 @@ static void viaFinish(GLcontext *ctx)
|
||||
{
|
||||
struct via_context *vmesa = VIA_CONTEXT(ctx);
|
||||
VIA_FLUSH_DMA(vmesa);
|
||||
viaWaitIdle(vmesa);
|
||||
viaWaitIdle(vmesa, GL_FALSE);
|
||||
}
|
||||
|
||||
static void viaClearStencil(GLcontext *ctx, int s)
|
||||
|
||||
@@ -37,8 +37,8 @@ void viaCopyBuffer(const __DRIdrawablePrivate *dpriv);
|
||||
void viaPageFlip(const __DRIdrawablePrivate *dpriv);
|
||||
void viaCheckDma(struct via_context *vmesa, GLuint bytes);
|
||||
void viaResetPageFlippingLocked(struct via_context *vmesa);
|
||||
void viaWaitIdle(struct via_context *vmesa);
|
||||
void viaWaitIdleLocked(struct via_context *vmesa);
|
||||
void viaWaitIdle(struct via_context *vmesa, GLboolean light);
|
||||
void viaWaitIdleLocked(struct via_context *vmesa, GLboolean light);
|
||||
|
||||
GLboolean viaCheckBreadcrumb( struct via_context *vmesa, GLuint value );
|
||||
void viaEmitBreadcrumb( struct via_context *vmesa );
|
||||
@@ -127,7 +127,7 @@ static GLuint __inline__ *viaExtendPrimitive(struct via_context *vmesa, int byte
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
|
||||
|
||||
#define VIA_GEQ_WRAP(left, right) \
|
||||
(((left) - (right)) < ( 1 << 23))
|
||||
|
||||
#endif
|
||||
|
||||
@@ -429,7 +429,9 @@ void * __driCreateNewScreen_20050727( __DRInativeDisplay *dpy, int scrn,
|
||||
|
||||
{
|
||||
__DRIscreenPrivate *psp;
|
||||
static const __DRIversion ddx_expected = { 4, 0, 0 };
|
||||
static const __DRIversion ddx_expected = { VIA_DRIDDX_VERSION_MAJOR,
|
||||
VIA_DRIDDX_VERSION_MINOR,
|
||||
VIA_DRIDDX_VERSION_PATCH };
|
||||
static const __DRIversion dri_expected = { 4, 0, 0 };
|
||||
static const __DRIversion drm_expected = { 2, 3, 0 };
|
||||
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
void viaSpanRenderStart( GLcontext *ctx )
|
||||
{
|
||||
struct via_context *vmesa = VIA_CONTEXT(ctx);
|
||||
viaWaitIdle(vmesa);
|
||||
viaWaitIdle(vmesa, GL_FALSE);
|
||||
LOCK_HARDWARE(vmesa);
|
||||
}
|
||||
|
||||
|
||||
@@ -839,7 +839,7 @@ static void viaTexSubImage2D(GLcontext *ctx,
|
||||
{
|
||||
struct via_context *vmesa = VIA_CONTEXT(ctx);
|
||||
|
||||
VIA_FLUSH_DMA(vmesa);
|
||||
viaWaitIdle(vmesa, GL_TRUE);
|
||||
vmesa->clearTexCache = 1;
|
||||
|
||||
_mesa_store_texsubimage2d(ctx, target, level, xoffset, yoffset, width,
|
||||
@@ -875,7 +875,7 @@ static void viaTexSubImage1D(GLcontext *ctx,
|
||||
{
|
||||
struct via_context *vmesa = VIA_CONTEXT(ctx);
|
||||
|
||||
VIA_FLUSH_DMA(vmesa);
|
||||
viaWaitIdle(vmesa, GL_TRUE);
|
||||
vmesa->clearTexCache = 1;
|
||||
|
||||
_mesa_store_texsubimage1d(ctx, target, level, xoffset, width,
|
||||
|
||||
Reference in New Issue
Block a user