From bb71f9249a66b9a4921a878766c0a2d87624c369 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Sat, 19 Nov 2011 22:38:22 +0100 Subject: gallium: separate out floating-point CAPs into its own enum The motivation behind this is to add some self-documentation in the code about how each CAP can be used. The idea is: - enum pipe_cap is only valid in get_param - enum pipe_capf is only valid in get_paramf Which CAPs are floating-point have been determined based on how everybody except svga implemented the functions. svga have been modified to match all the other drivers. Besides that, the floating-point CAPs are now prefixed with PIPE_CAPF_. --- src/gallium/drivers/r300/r300_screen.c | 23 ++++++++++++----------- src/gallium/drivers/r300/r300_state.c | 2 +- 2 files changed, 13 insertions(+), 12 deletions(-) (limited to 'src/gallium/drivers/r300') diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index aa7005c50ed..24d15c4f1c6 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -258,15 +258,16 @@ static int r300_get_shader_param(struct pipe_screen *pscreen, unsigned shader, e return 0; } -static float r300_get_paramf(struct pipe_screen* pscreen, enum pipe_cap param) +static float r300_get_paramf(struct pipe_screen* pscreen, + enum pipe_capf param) { struct r300_screen* r300screen = r300_screen(pscreen); switch (param) { - case PIPE_CAP_MAX_LINE_WIDTH: - case PIPE_CAP_MAX_LINE_WIDTH_AA: - case PIPE_CAP_MAX_POINT_WIDTH: - case PIPE_CAP_MAX_POINT_WIDTH_AA: + case PIPE_CAPF_MAX_LINE_WIDTH: + case PIPE_CAPF_MAX_LINE_WIDTH_AA: + case PIPE_CAPF_MAX_POINT_WIDTH: + case PIPE_CAPF_MAX_POINT_WIDTH_AA: /* The maximum dimensions of the colorbuffer are our practical * rendering limits. 2048 pixels should be enough for anybody. */ if (r300screen->caps.is_r500) { @@ -276,14 +277,14 @@ static float r300_get_paramf(struct pipe_screen* pscreen, enum pipe_cap param) } else { return 2560.0f; } - case PIPE_CAP_MAX_TEXTURE_ANISOTROPY: + case PIPE_CAPF_MAX_TEXTURE_ANISOTROPY: return 16.0f; - case PIPE_CAP_MAX_TEXTURE_LOD_BIAS: + case PIPE_CAPF_MAX_TEXTURE_LOD_BIAS: return 16.0f; - case PIPE_CAP_GUARD_BAND_LEFT: - case PIPE_CAP_GUARD_BAND_TOP: - case PIPE_CAP_GUARD_BAND_RIGHT: - case PIPE_CAP_GUARD_BAND_BOTTOM: + case PIPE_CAPF_GUARD_BAND_LEFT: + case PIPE_CAPF_GUARD_BAND_TOP: + case PIPE_CAPF_GUARD_BAND_RIGHT: + case PIPE_CAPF_GUARD_BAND_BOTTOM: /* XXX I don't know what these should be but the least we can do is * silence the potential error message */ return 0.0f; diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index 10d7ac285d3..b0aae534a6d 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -1074,7 +1074,7 @@ static void* r300_create_rs_state(struct pipe_context* pipe, /* Per-vertex point size. * Clamp to [0, max FB size] */ psiz = pipe->screen->get_paramf(pipe->screen, - PIPE_CAP_MAX_POINT_WIDTH); + PIPE_CAPF_MAX_POINT_WIDTH); point_minmax = pack_float_16_6x(psiz) << R300_GA_POINT_MINMAX_MAX_SHIFT; } else { -- cgit v1.2.3