gallium/i965: implement pipe_screen for i965 driver (untested)
This commit is contained in:
parent
17188e4d5a
commit
03b5267f52
|
@ -6,6 +6,7 @@ LIBNAME = i965simple
|
|||
C_SOURCES = \
|
||||
brw_blit.c \
|
||||
brw_flush.c \
|
||||
brw_screen.c \
|
||||
brw_strings.c \
|
||||
brw_surface.c \
|
||||
brw_cc.c \
|
||||
|
|
|
@ -40,15 +40,14 @@
|
|||
#include "pipe/p_winsys.h"
|
||||
#include "pipe/p_context.h"
|
||||
#include "pipe/p_util.h"
|
||||
#include "pipe/p_screen.h"
|
||||
|
||||
/***************************************
|
||||
* Mesa's Driver Functions
|
||||
***************************************/
|
||||
|
||||
#ifndef BRW_DEBUG
|
||||
int BRW_DEBUG = (0);
|
||||
#endif
|
||||
|
||||
|
||||
static void brw_destroy(struct pipe_context *pipe)
|
||||
{
|
||||
struct brw_context *brw = brw_context(pipe);
|
||||
|
@ -56,6 +55,7 @@ static void brw_destroy(struct pipe_context *pipe)
|
|||
FREE(brw);
|
||||
}
|
||||
|
||||
|
||||
static void brw_clear(struct pipe_context *pipe, struct pipe_surface *ps,
|
||||
unsigned clearValue)
|
||||
{
|
||||
|
@ -74,64 +74,17 @@ static void brw_clear(struct pipe_context *pipe, struct pipe_surface *ps,
|
|||
static int
|
||||
brw_get_param(struct pipe_context *pipe, int param)
|
||||
{
|
||||
switch (param) {
|
||||
case PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS:
|
||||
return 8;
|
||||
case PIPE_CAP_NPOT_TEXTURES:
|
||||
return 1;
|
||||
case PIPE_CAP_TWO_SIDED_STENCIL:
|
||||
return 1;
|
||||
case PIPE_CAP_GLSL:
|
||||
return 0;
|
||||
case PIPE_CAP_S3TC:
|
||||
return 0;
|
||||
case PIPE_CAP_ANISOTROPIC_FILTER:
|
||||
return 0;
|
||||
case PIPE_CAP_POINT_SPRITE:
|
||||
return 0;
|
||||
case PIPE_CAP_MAX_RENDER_TARGETS:
|
||||
return 1;
|
||||
case PIPE_CAP_OCCLUSION_QUERY:
|
||||
return 0;
|
||||
case PIPE_CAP_TEXTURE_SHADOW_MAP:
|
||||
return 1;
|
||||
case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
|
||||
return 11; /* max 1024x1024 */
|
||||
case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
|
||||
return 8; /* max 128x128x128 */
|
||||
case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
|
||||
return 11; /* max 1024x1024 */
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
return pipe->screen->get_param(pipe->screen, param);
|
||||
}
|
||||
|
||||
|
||||
static float
|
||||
brw_get_paramf(struct pipe_context *pipe, int param)
|
||||
{
|
||||
switch (param) {
|
||||
case PIPE_CAP_MAX_LINE_WIDTH:
|
||||
/* fall-through */
|
||||
case PIPE_CAP_MAX_LINE_WIDTH_AA:
|
||||
return 7.5;
|
||||
|
||||
case PIPE_CAP_MAX_POINT_WIDTH:
|
||||
/* fall-through */
|
||||
case PIPE_CAP_MAX_POINT_WIDTH_AA:
|
||||
return 255.0;
|
||||
|
||||
case PIPE_CAP_MAX_TEXTURE_ANISOTROPY:
|
||||
return 4.0;
|
||||
|
||||
case PIPE_CAP_MAX_TEXTURE_LOD_BIAS:
|
||||
return 16.0;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
return pipe->screen->get_paramf(pipe->screen, param);
|
||||
}
|
||||
|
||||
|
||||
static boolean
|
||||
brw_is_format_supported( struct pipe_context *pipe,
|
||||
enum pipe_format format, uint type )
|
||||
|
@ -200,13 +153,13 @@ brw_is_format_supported( struct pipe_context *pipe,
|
|||
|
||||
|
||||
|
||||
struct pipe_context *brw_create(struct pipe_winsys *pipe_winsys,
|
||||
struct pipe_context *brw_create(struct pipe_screen *screen,
|
||||
struct brw_winsys *brw_winsys,
|
||||
unsigned pci_id)
|
||||
{
|
||||
struct brw_context *brw;
|
||||
|
||||
pipe_winsys->printf(pipe_winsys,
|
||||
screen->winsys->printf(screen->winsys,
|
||||
"%s: creating brw_context with pci id 0x%x\n",
|
||||
__FUNCTION__, pci_id);
|
||||
|
||||
|
@ -215,7 +168,8 @@ struct pipe_context *brw_create(struct pipe_winsys *pipe_winsys,
|
|||
return NULL;
|
||||
|
||||
brw->winsys = brw_winsys;
|
||||
brw->pipe.winsys = pipe_winsys;
|
||||
brw->pipe.winsys = screen->winsys;
|
||||
brw->pipe.screen = screen;
|
||||
|
||||
brw->pipe.destroy = brw_destroy;
|
||||
brw->pipe.is_format_supported = brw_is_format_supported;
|
||||
|
|
|
@ -0,0 +1,168 @@
|
|||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* 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 TUNGSTEN 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#include "pipe/p_util.h"
|
||||
#include "pipe/p_winsys.h"
|
||||
|
||||
#include "brw_context.h"
|
||||
#include "brw_screen.h"
|
||||
#include "brw_tex_layout.h"
|
||||
|
||||
|
||||
static const char *
|
||||
brw_get_vendor( struct pipe_screen *screen )
|
||||
{
|
||||
return "Tungsten Graphics, Inc.";
|
||||
}
|
||||
|
||||
|
||||
static const char *
|
||||
brw_get_name( struct pipe_screen *screen )
|
||||
{
|
||||
static char buffer[128];
|
||||
const char *chipset;
|
||||
|
||||
switch (brw_screen(screen)->pci_id) {
|
||||
case PCI_CHIP_I965_Q:
|
||||
chipset = "Intel(R) 965Q";
|
||||
break;
|
||||
case PCI_CHIP_I965_G:
|
||||
case PCI_CHIP_I965_G_1:
|
||||
chipset = "Intel(R) 965G";
|
||||
break;
|
||||
case PCI_CHIP_I965_GM:
|
||||
chipset = "Intel(R) 965GM";
|
||||
break;
|
||||
case PCI_CHIP_I965_GME:
|
||||
chipset = "Intel(R) 965GME/GLE";
|
||||
break;
|
||||
default:
|
||||
chipset = "unknown";
|
||||
break;
|
||||
}
|
||||
|
||||
sprintf(buffer, "i965 (chipset: %s)", chipset);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
brw_get_param(struct pipe_screen *screen, int param)
|
||||
{
|
||||
switch (param) {
|
||||
case PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS:
|
||||
return 8;
|
||||
case PIPE_CAP_NPOT_TEXTURES:
|
||||
return 1;
|
||||
case PIPE_CAP_TWO_SIDED_STENCIL:
|
||||
return 1;
|
||||
case PIPE_CAP_GLSL:
|
||||
return 0;
|
||||
case PIPE_CAP_S3TC:
|
||||
return 0;
|
||||
case PIPE_CAP_ANISOTROPIC_FILTER:
|
||||
return 0;
|
||||
case PIPE_CAP_POINT_SPRITE:
|
||||
return 0;
|
||||
case PIPE_CAP_MAX_RENDER_TARGETS:
|
||||
return 1;
|
||||
case PIPE_CAP_OCCLUSION_QUERY:
|
||||
return 0;
|
||||
case PIPE_CAP_TEXTURE_SHADOW_MAP:
|
||||
return 1;
|
||||
case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
|
||||
return 11; /* max 1024x1024 */
|
||||
case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
|
||||
return 8; /* max 128x128x128 */
|
||||
case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
|
||||
return 11; /* max 1024x1024 */
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static float
|
||||
brw_get_paramf(struct pipe_screen *screen, int param)
|
||||
{
|
||||
switch (param) {
|
||||
case PIPE_CAP_MAX_LINE_WIDTH:
|
||||
/* fall-through */
|
||||
case PIPE_CAP_MAX_LINE_WIDTH_AA:
|
||||
return 7.5;
|
||||
|
||||
case PIPE_CAP_MAX_POINT_WIDTH:
|
||||
/* fall-through */
|
||||
case PIPE_CAP_MAX_POINT_WIDTH_AA:
|
||||
return 255.0;
|
||||
|
||||
case PIPE_CAP_MAX_TEXTURE_ANISOTROPY:
|
||||
return 4.0;
|
||||
|
||||
case PIPE_CAP_MAX_TEXTURE_LOD_BIAS:
|
||||
return 16.0;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
brw_destroy_screen( struct pipe_screen *screen )
|
||||
{
|
||||
FREE(screen);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create a new brw_screen object
|
||||
*/
|
||||
struct pipe_screen *
|
||||
brw_create_screen(struct pipe_winsys *winsys, uint pci_id)
|
||||
{
|
||||
struct brw_screen *brwscreen = CALLOC_STRUCT(brw_screen);
|
||||
|
||||
if (!brwscreen)
|
||||
return NULL;
|
||||
|
||||
brwscreen->pci_id = pci_id;
|
||||
|
||||
brwscreen->screen.winsys = winsys;
|
||||
|
||||
brwscreen->screen.destroy = brw_destroy_screen;
|
||||
|
||||
brwscreen->screen.get_name = brw_get_name;
|
||||
brwscreen->screen.get_vendor = brw_get_vendor;
|
||||
brwscreen->screen.get_param = brw_get_param;
|
||||
brwscreen->screen.get_paramf = brw_get_paramf;
|
||||
|
||||
brw_init_screen_texture_funcs(&brwscreen->screen);
|
||||
|
||||
return &brwscreen->screen;
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* 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 TUNGSTEN 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 BRW_SCREEN_H
|
||||
#define BRW_SCREEN_H
|
||||
|
||||
|
||||
#include "pipe/p_screen.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Subclass of pipe_screen
|
||||
*/
|
||||
struct brw_screen
|
||||
{
|
||||
struct pipe_screen screen;
|
||||
|
||||
uint pci_id;
|
||||
};
|
||||
|
||||
|
||||
/** cast wrapper */
|
||||
static INLINE struct brw_screen *
|
||||
brw_screen(struct pipe_screen *pscreen)
|
||||
{
|
||||
return (struct brw_screen *) pscreen;
|
||||
}
|
||||
|
||||
|
||||
extern struct pipe_screen *
|
||||
brw_create_screen(struct pipe_winsys *winsys, uint pci_id);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* BRW_SCREEN_H */
|
|
@ -28,39 +28,18 @@
|
|||
#include "brw_context.h"
|
||||
#include "brw_reg.h"
|
||||
|
||||
#include "pipe/p_screen.h"
|
||||
|
||||
|
||||
static const char *brw_get_vendor( struct pipe_context *pipe )
|
||||
{
|
||||
return "Tungsten Graphics, Inc.";
|
||||
return pipe->screen->get_vendor(pipe->screen);
|
||||
}
|
||||
|
||||
|
||||
static const char *brw_get_name( struct pipe_context *pipe )
|
||||
{
|
||||
static char buffer[128];
|
||||
const char *chipset;
|
||||
|
||||
switch (brw_context(pipe)->pci_id) {
|
||||
case PCI_CHIP_I965_Q:
|
||||
chipset = "Intel(R) 965Q";
|
||||
break;
|
||||
case PCI_CHIP_I965_G:
|
||||
case PCI_CHIP_I965_G_1:
|
||||
chipset = "Intel(R) 965G";
|
||||
break;
|
||||
case PCI_CHIP_I965_GM:
|
||||
chipset = "Intel(R) 965GM";
|
||||
break;
|
||||
case PCI_CHIP_I965_GME:
|
||||
chipset = "Intel(R) 965GME/GLE";
|
||||
break;
|
||||
default:
|
||||
chipset = "unknown";
|
||||
break;
|
||||
}
|
||||
|
||||
sprintf(buffer, "i965 (chipset: %s)", chipset);
|
||||
return buffer;
|
||||
return pipe->screen->get_name(pipe->screen);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -71,8 +71,6 @@ static unsigned minify( unsigned d )
|
|||
}
|
||||
|
||||
|
||||
static boolean brw_miptree_layout(struct pipe_context *, struct brw_texture *);
|
||||
|
||||
static void intel_miptree_set_image_offset(struct brw_texture *tex,
|
||||
unsigned level,
|
||||
unsigned img,
|
||||
|
@ -199,7 +197,7 @@ static void i945_miptree_layout_2d(struct brw_texture *tex)
|
|||
}
|
||||
}
|
||||
|
||||
static boolean brw_miptree_layout(struct pipe_context *pipe, struct brw_texture *tex)
|
||||
static boolean brw_miptree_layout(struct brw_texture *tex)
|
||||
{
|
||||
struct pipe_texture *pt = &tex->base;
|
||||
/* XXX: these vary depending on image format:
|
||||
|
@ -304,14 +302,23 @@ static struct pipe_texture *
|
|||
brw_texture_create(struct pipe_context *pipe,
|
||||
const struct pipe_texture *templat)
|
||||
{
|
||||
return pipe->screen->texture_create(pipe->screen, templat);
|
||||
}
|
||||
|
||||
|
||||
static struct pipe_texture *
|
||||
brw_texture_create_screen(struct pipe_screen *screen,
|
||||
const struct pipe_texture *templat)
|
||||
{
|
||||
struct pipe_winsys *ws = screen->winsys;
|
||||
struct brw_texture *tex = CALLOC_STRUCT(brw_texture);
|
||||
|
||||
if (tex) {
|
||||
tex->base = *templat;
|
||||
tex->base.refcount = 1;
|
||||
|
||||
if (brw_miptree_layout(pipe, tex))
|
||||
tex->buffer = pipe->winsys->buffer_create(pipe->winsys, 64,
|
||||
if (brw_miptree_layout(tex))
|
||||
tex->buffer = ws->buffer_create(ws, 64,
|
||||
PIPE_BUFFER_USAGE_PIXEL,
|
||||
tex->pitch * tex->base.cpp *
|
||||
tex->total_height);
|
||||
|
@ -328,6 +335,14 @@ brw_texture_create(struct pipe_context *pipe,
|
|||
|
||||
static void
|
||||
brw_texture_release(struct pipe_context *pipe, struct pipe_texture **pt)
|
||||
{
|
||||
pipe->screen->texture_release(pipe->screen, pt);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
brw_texture_release_screen(struct pipe_screen *screen,
|
||||
struct pipe_texture **pt)
|
||||
{
|
||||
if (!*pt)
|
||||
return;
|
||||
|
@ -337,6 +352,7 @@ brw_texture_release(struct pipe_context *pipe, struct pipe_texture **pt)
|
|||
__FUNCTION__, (void *) *pt, (*pt)->refcount - 1);
|
||||
*/
|
||||
if (--(*pt)->refcount <= 0) {
|
||||
struct pipe_winsys *ws = screen->winsys;
|
||||
struct brw_texture *tex = (struct brw_texture *)*pt;
|
||||
uint i;
|
||||
|
||||
|
@ -344,7 +360,7 @@ brw_texture_release(struct pipe_context *pipe, struct pipe_texture **pt)
|
|||
DBG("%s deleting %p\n", __FUNCTION__, (void *) tex);
|
||||
*/
|
||||
|
||||
pipe_buffer_reference(pipe->winsys, &tex->buffer, NULL);
|
||||
pipe_buffer_reference(ws, &tex->buffer, NULL);
|
||||
|
||||
for (i = 0; i < PIPE_MAX_TEXTURE_LEVELS; i++)
|
||||
if (tex->image_offset[i])
|
||||
|
@ -371,6 +387,16 @@ brw_get_tex_surface(struct pipe_context *pipe,
|
|||
struct pipe_texture *pt,
|
||||
unsigned face, unsigned level, unsigned zslice)
|
||||
{
|
||||
return pipe->screen->get_tex_surface(pipe->screen, pt, face, level, zslice);
|
||||
}
|
||||
|
||||
|
||||
static struct pipe_surface *
|
||||
brw_get_tex_surface_screen(struct pipe_screen *screen,
|
||||
struct pipe_texture *pt,
|
||||
unsigned face, unsigned level, unsigned zslice)
|
||||
{
|
||||
struct pipe_winsys *ws = screen->winsys;
|
||||
struct brw_texture *tex = (struct brw_texture *)pt;
|
||||
struct pipe_surface *ps;
|
||||
unsigned offset; /* in bytes */
|
||||
|
@ -388,11 +414,11 @@ brw_get_tex_surface(struct pipe_context *pipe,
|
|||
assert(zslice == 0);
|
||||
}
|
||||
|
||||
ps = pipe->winsys->surface_alloc(pipe->winsys);
|
||||
ps = ws->surface_alloc(ws);
|
||||
if (ps) {
|
||||
assert(ps->format);
|
||||
assert(ps->refcount);
|
||||
pipe_buffer_reference(pipe->winsys, &ps->buffer, tex->buffer);
|
||||
pipe_buffer_reference(ws, &ps->buffer, tex->buffer);
|
||||
ps->format = pt->format;
|
||||
ps->cpp = pt->cpp;
|
||||
ps->width = pt->width[level];
|
||||
|
@ -412,3 +438,13 @@ brw_init_texture_functions(struct brw_context *brw)
|
|||
brw->pipe.texture_update = brw_texture_update;
|
||||
brw->pipe.get_tex_surface = brw_get_tex_surface;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
brw_init_screen_texture_funcs(struct pipe_screen *screen)
|
||||
{
|
||||
screen->texture_create = brw_texture_create_screen;
|
||||
screen->texture_release = brw_texture_release_screen;
|
||||
screen->get_tex_surface = brw_get_tex_surface_screen;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,44 @@
|
|||
/*
|
||||
Copyright (C) Intel Corp. 2006. All Rights Reserved.
|
||||
Intel funded Tungsten Graphics (http://www.tungstengraphics.com) to
|
||||
develop this 3D driver.
|
||||
|
||||
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.
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
|
||||
#ifndef BRW_TEX_LAYOUT_H
|
||||
#define BRW_TEX_LAYOUT_H
|
||||
|
||||
|
||||
struct brw_context;
|
||||
struct pipe_screen;
|
||||
|
||||
|
||||
extern void
|
||||
brw_init_texture_functions(struct brw_context *brw);
|
||||
|
||||
extern void
|
||||
brw_init_screen_texture_funcs(struct pipe_screen *screen);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -53,6 +53,8 @@
|
|||
struct pipe_buffer;
|
||||
struct pipe_fence_handle;
|
||||
struct pipe_winsys;
|
||||
struct pipe_screen;
|
||||
|
||||
|
||||
/* The pipe driver currently understands the following chipsets:
|
||||
*/
|
||||
|
@ -181,7 +183,7 @@ struct brw_winsys {
|
|||
#define BRW_BUFFER_USAGE_LIT_VERTEX (PIPE_BUFFER_USAGE_CUSTOM << 0)
|
||||
|
||||
|
||||
struct pipe_context *brw_create(struct pipe_winsys *,
|
||||
struct pipe_context *brw_create(struct pipe_screen *,
|
||||
struct brw_winsys *,
|
||||
unsigned pci_id);
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "pipe/p_util.h"
|
||||
#include "pipe/p_inlines.h"
|
||||
#include "i965simple/brw_winsys.h"
|
||||
#include "i965simple/brw_screen.h"
|
||||
#include "brw_aub.h"
|
||||
#include "xm_winsys_aub.h"
|
||||
|
||||
|
@ -565,6 +566,7 @@ struct pipe_context *
|
|||
xmesa_create_i965simple( struct pipe_winsys *winsys )
|
||||
{
|
||||
struct aub_brw_winsys *iws = CALLOC_STRUCT( aub_brw_winsys );
|
||||
struct pipe_screen *screen = brw_create_screen(winsys, 0/* XXX pci_id */);
|
||||
|
||||
/* Fill in this struct with callbacks that i965simple will need to
|
||||
* communicate with the window system, buffer manager, etc.
|
||||
|
@ -583,7 +585,7 @@ xmesa_create_i965simple( struct pipe_winsys *winsys )
|
|||
|
||||
/* Create the i965simple context:
|
||||
*/
|
||||
return brw_create( winsys,
|
||||
return brw_create( screen,
|
||||
&iws->winsys,
|
||||
0 );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue