summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian <[email protected]>2008-02-27 11:24:35 -0700
committerBrian <[email protected]>2008-02-27 11:24:35 -0700
commit8383f798b41df9a305e0a33afe8afa028d5d5dfb (patch)
treeaa5f3626bc28f7f2368064d91099fdbaf486d04a
parent03b5267f52d440b1b357918ed7de2ca948f314e1 (diff)
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.
-rw-r--r--src/gallium/drivers/cell/ppu/cell_context.c29
-rw-r--r--src/gallium/drivers/failover/fo_context.c3
-rw-r--r--src/gallium/drivers/i915simple/Makefile1
-rw-r--r--src/gallium/drivers/i915simple/SConscript1
-rw-r--r--src/gallium/drivers/i915simple/i915_context.c24
-rw-r--r--src/gallium/drivers/i965simple/Makefile1
-rw-r--r--src/gallium/drivers/i965simple/SConscript1
-rw-r--r--src/gallium/drivers/i965simple/brw_context.c17
-rw-r--r--src/gallium/drivers/softpipe/sp_context.c25
-rw-r--r--src/gallium/include/pipe/p_context.h3
-rw-r--r--src/mesa/state_tracker/st_cb_drawpixels.c2
-rw-r--r--src/mesa/state_tracker/st_cb_strings.c9
-rw-r--r--src/mesa/state_tracker/st_extensions.c49
13 files changed, 37 insertions, 128 deletions
diff --git a/src/gallium/drivers/cell/ppu/cell_context.c b/src/gallium/drivers/cell/ppu/cell_context.c
index bb1838409fc..351601473d2 100644
--- a/src/gallium/drivers/cell/ppu/cell_context.c
+++ b/src/gallium/drivers/cell/ppu/cell_context.c
@@ -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;
diff --git a/src/gallium/drivers/failover/fo_context.c b/src/gallium/drivers/failover/fo_context.c
index 156f7399b03..d5e54f5d61a 100644
--- a/src/gallium/drivers/failover/fo_context.c
+++ b/src/gallium/drivers/failover/fo_context.c
@@ -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;
diff --git a/src/gallium/drivers/i915simple/Makefile b/src/gallium/drivers/i915simple/Makefile
index 3400747a730..41a61a0020b 100644
--- a/src/gallium/drivers/i915simple/Makefile
+++ b/src/gallium/drivers/i915simple/Makefile
@@ -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 \
diff --git a/src/gallium/drivers/i915simple/SConscript b/src/gallium/drivers/i915simple/SConscript
index 3e1beaea6d8..2366e1247f2 100644
--- a/src/gallium/drivers/i915simple/SConscript
+++ b/src/gallium/drivers/i915simple/SConscript
@@ -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',
])
diff --git a/src/gallium/drivers/i915simple/i915_context.c b/src/gallium/drivers/i915simple/i915_context.c
index e89db8a1303..42355552de1 100644
--- a/src/gallium/drivers/i915simple/i915_context.c
+++ b/src/gallium/drivers/i915simple/i915_context.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;
}
diff --git a/src/gallium/drivers/i965simple/Makefile b/src/gallium/drivers/i965simple/Makefile
index 7b0df0f8508..8589ebdf964 100644
--- a/src/gallium/drivers/i965simple/Makefile
+++ b/src/gallium/drivers/i965simple/Makefile
@@ -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 \
diff --git a/src/gallium/drivers/i965simple/SConscript b/src/gallium/drivers/i965simple/SConscript
index 74621de84c9..e0cc78826ec 100644
--- a/src/gallium/drivers/i965simple/SConscript
+++ b/src/gallium/drivers/i965simple/SConscript
@@ -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',
diff --git a/src/gallium/drivers/i965simple/brw_context.c b/src/gallium/drivers/i965simple/brw_context.c
index d90b32d4b40..e0a40372867 100644
--- a/src/gallium/drivers/i965simple/brw_context.c
+++ b/src/gallium/drivers/i965simple/brw_context.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 );
diff --git a/src/gallium/drivers/softpipe/sp_context.c b/src/gallium/drivers/softpipe/sp_context.c
index 4ac1719cbbe..6a88c277aa6 100644
--- a/src/gallium/drivers/softpipe/sp_context.c
+++ b/src/gallium/drivers/softpipe/sp_context.c
@@ -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;
diff --git a/src/gallium/include/pipe/p_context.h b/src/gallium/include/pipe/p_context.h
index 93fcb1c3e96..38ee95bdadd 100644
--- a/src/gallium/include/pipe/p_context.h
+++ b/src/gallium/include/pipe/p_context.h
@@ -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
/*
diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c
index c8376989804..6245ce057f9 100644
--- a/src/mesa/state_tracker/st_cb_drawpixels.c
+++ b/src/mesa/state_tracker/st_cb_drawpixels.c
@@ -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);
diff --git a/src/mesa/state_tracker/st_cb_strings.c b/src/mesa/state_tracker/st_cb_strings.c
index c344df0ff1e..247519ab3de 100644
--- a/src/mesa/state_tracker/st_cb_strings.c
+++ b/src/mesa/state_tracker/st_cb_strings.c
@@ -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;
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index 97d28d77c4b..99d2a5fb9e9 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -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;