Commit 8383f798 authored by Brian's avatar Brian

gallium: start removing pipe_context->get_name/vendor/param/paramf

These are now per-screen functions, not per-context.
State tracker updated, code in drivers and p_context.h disabled.
parent 03b5267f
......@@ -77,30 +77,6 @@ cell_is_format_supported( struct pipe_context *pipe,
}
static int cell_get_param(struct pipe_context *pipe, int param)
{
return pipe->screen->get_param(pipe->screen, param);
}
static float cell_get_paramf(struct pipe_context *pipe, int param)
{
return pipe->screen->get_paramf(pipe->screen, param);
}
static const char *
cell_get_name( struct pipe_context *pipe )
{
return pipe->screen->get_name(pipe->screen);
}
static const char *
cell_get_vendor( struct pipe_context *pipe )
{
return pipe->screen->get_vendor(pipe->screen);
}
static void
cell_destroy_context( struct pipe_context *pipe )
{
......@@ -148,11 +124,6 @@ cell_create_context(struct pipe_screen *screen,
/* queries */
cell->pipe.is_format_supported = cell_is_format_supported;
cell->pipe.get_name = cell_get_name;
cell->pipe.get_vendor = cell_get_vendor;
cell->pipe.get_param = cell_get_param;
cell->pipe.get_paramf = cell_get_paramf;
/* state setters */
cell->pipe.set_vertex_buffer = cell_set_vertex_buffer;
......
......@@ -117,12 +117,15 @@ struct pipe_context *failover_create( struct pipe_context *hw,
failover->hw = hw;
failover->sw = sw;
failover->pipe.winsys = hw->winsys;
failover->pipe.screen = hw->screen;
failover->pipe.destroy = failover_destroy;
failover->pipe.is_format_supported = hw->is_format_supported;
#if 0
failover->pipe.get_name = hw->get_name;
failover->pipe.get_vendor = hw->get_vendor;
failover->pipe.get_param = hw->get_param;
failover->pipe.get_paramf = hw->get_paramf;
#endif
failover->pipe.draw_arrays = failover_draw_arrays;
failover->pipe.draw_elements = failover_draw_elements;
......
......@@ -18,7 +18,6 @@ C_SOURCES = \
i915_state_emit.c \
i915_state_sampler.c \
i915_screen.c \
i915_strings.c \
i915_prim_emit.c \
i915_prim_vbuf.c \
i915_texture.c \
......
......@@ -22,7 +22,6 @@ i915simple = env.ConvenienceLibrary(
'i915_state_emit.c',
'i915_state_immediate.c',
'i915_state_sampler.c',
'i915_strings.c',
'i915_surface.c',
'i915_texture.c',
])
......
......@@ -91,22 +91,6 @@ i915_is_format_supported( struct pipe_context *pipe,
}
/* XXX temporary */
static int
i915_get_param(struct pipe_context *pipe, int param)
{
return pipe->screen->get_param(pipe->screen, param);
}
/* XXX temporary */
static float
i915_get_paramf(struct pipe_context *pipe, int param)
{
return pipe->screen->get_paramf(pipe->screen, param);
}
static void i915_destroy( struct pipe_context *pipe )
{
struct i915_context *i915 = i915_context( pipe );
......@@ -205,8 +189,6 @@ struct pipe_context *i915_create_context( struct pipe_screen *screen,
i915->pipe.destroy = i915_destroy;
i915->pipe.is_format_supported = i915_is_format_supported;
i915->pipe.get_param = i915_get_param;
i915->pipe.get_paramf = i915_get_paramf;
i915->pipe.clear = i915_clear;
......@@ -229,7 +211,6 @@ struct pipe_context *i915_create_context( struct pipe_screen *screen,
i915_init_surface_functions(i915);
i915_init_state_functions(i915);
i915_init_flush_functions(i915);
i915_init_string_functions(i915);
i915_init_texture_functions(i915);
draw_install_aaline_stage(i915->draw, &i915->pipe);
......@@ -242,11 +223,6 @@ struct pipe_context *i915_create_context( struct pipe_screen *screen,
*/
i915->batch_start = NULL;
/*
* XXX we could plug GL selection/feedback into the drawing pipeline
* by specifying a different setup/render stage.
*/
return &i915->pipe;
}
......@@ -7,7 +7,6 @@ C_SOURCES = \
brw_blit.c \
brw_flush.c \
brw_screen.c \
brw_strings.c \
brw_surface.c \
brw_cc.c \
brw_clip.c \
......
......@@ -35,7 +35,6 @@ i965simple = env.ConvenienceLibrary(
'brw_state_cache.c',
'brw_state_pool.c',
'brw_state_upload.c',
'brw_strings.c',
'brw_surface.c',
'brw_tex_layout.c',
'brw_urb.c',
......
......@@ -71,20 +71,6 @@ static void brw_clear(struct pipe_context *pipe, struct pipe_surface *ps,
}
static int
brw_get_param(struct pipe_context *pipe, int param)
{
return pipe->screen->get_param(pipe->screen, param);
}
static float
brw_get_paramf(struct pipe_context *pipe, int param)
{
return pipe->screen->get_paramf(pipe->screen, param);
}
static boolean
brw_is_format_supported( struct pipe_context *pipe,
enum pipe_format format, uint type )
......@@ -173,15 +159,12 @@ struct pipe_context *brw_create(struct pipe_screen *screen,
brw->pipe.destroy = brw_destroy;
brw->pipe.is_format_supported = brw_is_format_supported;
brw->pipe.get_param = brw_get_param;
brw->pipe.get_paramf = brw_get_paramf;
brw->pipe.clear = brw_clear;
brw_init_surface_functions(brw);
brw_init_texture_functions(brw);
brw_init_state_functions(brw);
brw_init_flush_functions(brw);
brw_init_string_functions(brw);
brw_init_draw_functions( brw );
......
......@@ -143,27 +143,6 @@ static void softpipe_destroy( struct pipe_context *pipe )
}
/* XXX these will go away shortly */
static const char *softpipe_get_name( struct pipe_context *pipe )
{
return pipe->screen->get_name(pipe->screen);
}
static const char *softpipe_get_vendor( struct pipe_context *pipe )
{
return pipe->screen->get_vendor(pipe->screen);
}
static int softpipe_get_param(struct pipe_context *pipe, int param)
{
return pipe->screen->get_param(pipe->screen, param);
}
static float softpipe_get_paramf(struct pipe_context *pipe, int param)
{
return pipe->screen->get_paramf(pipe->screen, param);
}
struct pipe_context *
softpipe_create( struct pipe_screen *screen,
struct pipe_winsys *pipe_winsys,
......@@ -186,10 +165,6 @@ softpipe_create( struct pipe_screen *screen,
/* queries */
softpipe->pipe.is_format_supported = softpipe_is_format_supported;
softpipe->pipe.get_name = softpipe_get_name;
softpipe->pipe.get_vendor = softpipe_get_vendor;
softpipe->pipe.get_param = softpipe_get_param;
softpipe->pipe.get_paramf = softpipe_get_paramf;
/* state setters */
softpipe->pipe.create_blend_state = softpipe_create_blend_state;
......
......@@ -66,12 +66,15 @@ struct pipe_context {
boolean (*is_format_supported)( struct pipe_context *pipe,
enum pipe_format format, uint type );
#if 0
/* XXX obsolete, moved into pipe_screen */
const char *(*get_name)( struct pipe_context *pipe );
const char *(*get_vendor)( struct pipe_context *pipe );
int (*get_param)( struct pipe_context *pipe, int param );
float (*get_paramf)( struct pipe_context *pipe, int param );
#endif
/*
......
......@@ -649,7 +649,7 @@ draw_textured_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z,
/* XXX if DrawPixels image is larger than max texture size, break
* it up into chunks.
*/
maxSize = 1 << (pipe->get_param(pipe, PIPE_CAP_MAX_TEXTURE_2D_LEVELS) - 1);
maxSize = 1 << (pipe->screen->get_param(pipe->screen, PIPE_CAP_MAX_TEXTURE_2D_LEVELS) - 1);
assert(width <= maxSize);
assert(height <= maxSize);
......
......@@ -35,6 +35,7 @@
#include "main/macros.h"
#include "main/version.h"
#include "pipe/p_context.h"
#include "pipe/p_screen.h"
#include "pipe/p_winsys.h"
#include "st_context.h"
#include "st_cb_strings.h"
......@@ -45,11 +46,11 @@ static const GLubyte *
st_get_string(GLcontext * ctx, GLenum name)
{
struct st_context *st = st_context(ctx);
struct pipe_context *pipe = st->pipe;
struct pipe_screen *screen = st->pipe->screen;
switch (name) {
case GL_VENDOR: {
const char *vendor = pipe->get_vendor( pipe );
const char *vendor = screen->get_vendor( screen );
const char *tungsten = "Tungsten Graphics, Inc.";
/* Tungsten developed the state_tracker module (and much of
......@@ -68,8 +69,8 @@ st_get_string(GLcontext * ctx, GLenum name)
case GL_RENDERER:
snprintf(st->renderer, sizeof(st->renderer), "Gallium %s, %s on %s",
ST_VERSION_STRING,
pipe->get_name( pipe ),
pipe->winsys->get_name( pipe->winsys ));
screen->get_name( screen ),
screen->winsys->get_name( screen->winsys ));
return (GLubyte *) st->renderer;
......
......@@ -32,6 +32,7 @@
#include "pipe/p_context.h"
#include "pipe/p_defines.h"
#include "pipe/p_screen.h"
#include "st_context.h"
#include "st_extensions.h"
......@@ -64,19 +65,19 @@ static int clamp(int a, int min, int max)
*/
void st_init_limits(struct st_context *st)
{
struct pipe_context *pipe = st->pipe;
struct pipe_screen *screen = st->pipe->screen;
struct gl_constants *c = &st->ctx->Const;
c->MaxTextureLevels
= min(pipe->get_param(pipe, PIPE_CAP_MAX_TEXTURE_2D_LEVELS),
= min(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_2D_LEVELS),
MAX_TEXTURE_LEVELS);
c->Max3DTextureLevels
= min(pipe->get_param(pipe, PIPE_CAP_MAX_TEXTURE_3D_LEVELS),
= min(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_3D_LEVELS),
MAX_3D_TEXTURE_LEVELS);
c->MaxCubeTextureLevels
= min(pipe->get_param(pipe, PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS),
= min(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS),
MAX_CUBE_TEXTURE_LEVELS);
c->MaxTextureRectSize
......@@ -84,31 +85,31 @@ void st_init_limits(struct st_context *st)
c->MaxTextureImageUnits
= c->MaxTextureCoordUnits
= min(pipe->get_param(pipe, PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS),
= min(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS),
MAX_TEXTURE_IMAGE_UNITS);
c->MaxDrawBuffers
= clamp(pipe->get_param(pipe, PIPE_CAP_MAX_RENDER_TARGETS),
= clamp(screen->get_param(screen, PIPE_CAP_MAX_RENDER_TARGETS),
1, MAX_DRAW_BUFFERS);
c->MaxLineWidth
= max(1.0, pipe->get_paramf(pipe, PIPE_CAP_MAX_LINE_WIDTH));
= max(1.0, screen->get_paramf(screen, PIPE_CAP_MAX_LINE_WIDTH));
c->MaxLineWidthAA
= max(1.0, pipe->get_paramf(pipe, PIPE_CAP_MAX_LINE_WIDTH_AA));
= max(1.0, screen->get_paramf(screen, PIPE_CAP_MAX_LINE_WIDTH_AA));
c->MaxPointSize
= max(1.0, pipe->get_paramf(pipe, PIPE_CAP_MAX_POINT_WIDTH));
= max(1.0, screen->get_paramf(screen, PIPE_CAP_MAX_POINT_WIDTH));
c->MaxPointSizeAA
= max(1.0, pipe->get_paramf(pipe, PIPE_CAP_MAX_POINT_WIDTH_AA));
= max(1.0, screen->get_paramf(screen, PIPE_CAP_MAX_POINT_WIDTH_AA));
c->MaxTextureMaxAnisotropy
= max(2.0, pipe->get_paramf(pipe, PIPE_CAP_MAX_TEXTURE_ANISOTROPY));
= max(2.0, screen->get_paramf(screen, PIPE_CAP_MAX_TEXTURE_ANISOTROPY));
c->MaxTextureLodBias
= pipe->get_paramf(pipe, PIPE_CAP_MAX_TEXTURE_LOD_BIAS);
= screen->get_paramf(screen, PIPE_CAP_MAX_TEXTURE_LOD_BIAS);
st->bitmap_texcoord_bias
= pipe->get_paramf(pipe, PIPE_CAP_BITMAP_TEXCOORD_BIAS);
= screen->get_paramf(screen, PIPE_CAP_BITMAP_TEXCOORD_BIAS);
}
......@@ -117,7 +118,7 @@ void st_init_limits(struct st_context *st)
*/
void st_init_extensions(struct st_context *st)
{
struct pipe_context *pipe = st->pipe;
struct pipe_screen *screen = st->pipe->screen;
GLcontext *ctx = st->ctx;
/*
......@@ -163,11 +164,11 @@ void st_init_extensions(struct st_context *st)
/*
* Extensions that depend on the driver/hardware:
*/
if (pipe->get_param(pipe, PIPE_CAP_MAX_RENDER_TARGETS) > 0) {
if (screen->get_param(screen, PIPE_CAP_MAX_RENDER_TARGETS) > 0) {
ctx->Extensions.ARB_draw_buffers = GL_TRUE;
}
if (pipe->get_param(pipe, PIPE_CAP_GLSL)) {
if (screen->get_param(screen, PIPE_CAP_GLSL)) {
ctx->Extensions.ARB_fragment_shader = GL_TRUE;
ctx->Extensions.ARB_vertex_shader = GL_TRUE;
ctx->Extensions.ARB_shader_objects = GL_TRUE;
......@@ -175,37 +176,37 @@ void st_init_extensions(struct st_context *st)
ctx->Extensions.ARB_shading_language_120 = GL_TRUE;
}
if (pipe->get_param(pipe, PIPE_CAP_NPOT_TEXTURES)) {
if (screen->get_param(screen, PIPE_CAP_NPOT_TEXTURES)) {
ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE;
ctx->Extensions.NV_texture_rectangle = GL_TRUE;
}
if (pipe->get_param(pipe, PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS) > 1) {
if (screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS) > 1) {
ctx->Extensions.ARB_multitexture = GL_TRUE;
}
if (pipe->get_param(pipe, PIPE_CAP_TWO_SIDED_STENCIL)) {
if (screen->get_param(screen, PIPE_CAP_TWO_SIDED_STENCIL)) {
ctx->Extensions.ATI_separate_stencil = GL_TRUE;
}
if (pipe->get_param(pipe, PIPE_CAP_S3TC)) {
if (screen->get_param(screen, PIPE_CAP_S3TC)) {
ctx->Extensions.EXT_texture_compression_s3tc = GL_TRUE;
}
if (pipe->get_param(pipe, PIPE_CAP_ANISOTROPIC_FILTER)) {
if (screen->get_param(screen, PIPE_CAP_ANISOTROPIC_FILTER)) {
ctx->Extensions.EXT_texture_filter_anisotropic = GL_TRUE;
}
if (pipe->get_param(pipe, PIPE_CAP_POINT_SPRITE)) {
if (screen->get_param(screen, PIPE_CAP_POINT_SPRITE)) {
ctx->Extensions.ARB_point_sprite = GL_TRUE;
ctx->Extensions.NV_point_sprite = GL_TRUE;
}
if (pipe->get_param(pipe, PIPE_CAP_OCCLUSION_QUERY)) {
if (screen->get_param(screen, PIPE_CAP_OCCLUSION_QUERY)) {
ctx->Extensions.ARB_occlusion_query = GL_TRUE;
}
if (pipe->get_param(pipe, PIPE_CAP_TEXTURE_SHADOW_MAP)) {
if (screen->get_param(screen, PIPE_CAP_TEXTURE_SHADOW_MAP)) {
ctx->Extensions.ARB_depth_texture = GL_TRUE;
ctx->Extensions.ARB_shadow = GL_TRUE;
ctx->Extensions.EXT_shadow_funcs = GL_TRUE;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment