diff options
| author | Luca Barbieri <luca@luca-barbieri.com> | 2010-02-20 19:39:24 +0100 | 
|---|---|---|
| committer | Younes Manton <younes.m@gmail.com> | 2010-03-15 00:03:02 -0400 | 
| commit | 9937116c7b15468088a224da478d927347a76f32 (patch) | |
| tree | 8e681aa53ef624b92b43244c4590a3d1485cf15a /src | |
| parent | 8611a31bb401fcc2bdc0b3624859fffff7236c4b (diff) | |
nv30, nv40: unify nv[34]0_query.c
The files are identical except formatting.
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/drivers/nv30/Makefile | 2 | ||||
| -rw-r--r-- | src/gallium/drivers/nv30/nv30_context.c | 4 | ||||
| -rw-r--r-- | src/gallium/drivers/nv30/nv30_context.h | 2 | ||||
| -rw-r--r-- | src/gallium/drivers/nv40/Makefile | 2 | ||||
| -rw-r--r-- | src/gallium/drivers/nv40/nv40_context.c | 4 | ||||
| -rw-r--r-- | src/gallium/drivers/nv40/nv40_context.h | 2 | ||||
| -rw-r--r-- | src/gallium/drivers/nv40/nv40_query.c | 127 | ||||
| -rw-r--r-- | src/gallium/drivers/nv40/nv40_surface.c | 64 | ||||
| -rw-r--r-- | src/gallium/drivers/nvfx/Makefile | 2 | ||||
| -rw-r--r-- | src/gallium/drivers/nvfx/nvfx_context.h | 3 | ||||
| -rw-r--r-- | src/gallium/drivers/nvfx/nvfx_query.c (renamed from src/gallium/drivers/nv30/nv30_query.c) | 44 | ||||
| -rw-r--r-- | src/gallium/drivers/nvfx/nvfx_surface.c (renamed from src/gallium/drivers/nv30/nv30_surface.c) | 22 | 
12 files changed, 42 insertions, 236 deletions
diff --git a/src/gallium/drivers/nv30/Makefile b/src/gallium/drivers/nv30/Makefile index d8de297f12..4f9798de0c 100644 --- a/src/gallium/drivers/nv30/Makefile +++ b/src/gallium/drivers/nv30/Makefile @@ -8,12 +8,10 @@ C_SOURCES = \  	nv30_draw.c \  	nv30_fragprog.c \  	nv30_fragtex.c \ -	nv30_query.c \  	nv30_screen.c \  	nv30_state.c \  	nv30_state_fb.c \  	nv30_state_viewport.c \ -	nv30_surface.c \  	nv30_vbo.c \  	nv30_vertprog.c diff --git a/src/gallium/drivers/nv30/nv30_context.c b/src/gallium/drivers/nv30/nv30_context.c index 6fe8cb3e32..f13458d50a 100644 --- a/src/gallium/drivers/nv30/nv30_context.c +++ b/src/gallium/drivers/nv30/nv30_context.c @@ -73,8 +73,8 @@ nv30_create(struct pipe_screen *pscreen, void *priv)  	nvfx->is_nv4x = screen->is_nv4x; -	nv30_init_query_functions(nvfx); -	nv30_init_surface_functions(nvfx); +	nvfx_init_query_functions(nvfx); +	nvfx_init_surface_functions(nvfx);  	nv30_init_state_functions(nvfx);  	nvfx_init_transfer_functions(nvfx); diff --git a/src/gallium/drivers/nv30/nv30_context.h b/src/gallium/drivers/nv30/nv30_context.h index 46b36ee2e5..a0a1c335ec 100644 --- a/src/gallium/drivers/nv30/nv30_context.h +++ b/src/gallium/drivers/nv30/nv30_context.h @@ -4,8 +4,6 @@  #include "nvfx_context.h"  extern void nv30_init_state_functions(struct nvfx_context *nvfx); -extern void nv30_init_surface_functions(struct nvfx_context *nvfx); -extern void nv30_init_query_functions(struct nvfx_context *nvfx);  /* nv30_draw.c */  extern struct draw_stage *nv30_draw_render_stage(struct nvfx_context *nvfx); diff --git a/src/gallium/drivers/nv40/Makefile b/src/gallium/drivers/nv40/Makefile index bf68338e3f..0b3607be89 100644 --- a/src/gallium/drivers/nv40/Makefile +++ b/src/gallium/drivers/nv40/Makefile @@ -8,12 +8,10 @@ C_SOURCES = \  	nv40_draw.c \  	nv40_fragprog.c \  	nv40_fragtex.c \ -	nv40_query.c \  	nv40_screen.c \  	nv40_state.c \  	nv40_state_fb.c \  	nv40_state_viewport.c \ -	nv40_surface.c \  	nv40_vbo.c \  	nv40_vertprog.c diff --git a/src/gallium/drivers/nv40/nv40_context.c b/src/gallium/drivers/nv40/nv40_context.c index 12f57377cd..441b038b05 100644 --- a/src/gallium/drivers/nv40/nv40_context.c +++ b/src/gallium/drivers/nv40/nv40_context.c @@ -73,8 +73,8 @@ nv40_create(struct pipe_screen *pscreen, void *priv)  	nvfx->is_nv4x = screen->is_nv4x; -	nv40_init_query_functions(nvfx); -	nv40_init_surface_functions(nvfx); +	nvfx_init_query_functions(nvfx); +	nvfx_init_surface_functions(nvfx);  	nv40_init_state_functions(nvfx);  	nvfx_init_transfer_functions(nvfx); diff --git a/src/gallium/drivers/nv40/nv40_context.h b/src/gallium/drivers/nv40/nv40_context.h index fe44452f81..4353d78cd2 100644 --- a/src/gallium/drivers/nv40/nv40_context.h +++ b/src/gallium/drivers/nv40/nv40_context.h @@ -4,8 +4,6 @@  #include "nvfx_context.h"  extern void nv40_init_state_functions(struct nvfx_context *nvfx); -extern void nv40_init_surface_functions(struct nvfx_context *nvfx); -extern void nv40_init_query_functions(struct nvfx_context *nvfx);  /* nv40_draw.c */  extern struct draw_stage *nv40_draw_render_stage(struct nvfx_context *nvfx); diff --git a/src/gallium/drivers/nv40/nv40_query.c b/src/gallium/drivers/nv40/nv40_query.c deleted file mode 100644 index 48cfc4d593..0000000000 --- a/src/gallium/drivers/nv40/nv40_query.c +++ /dev/null @@ -1,127 +0,0 @@ -#include "pipe/p_context.h" - -#include "nv40_context.h" - -struct nv40_query { -	struct nouveau_resource *object; -	unsigned type; -	boolean ready; -	uint64_t result; -}; - -static INLINE struct nv40_query * -nv40_query(struct pipe_query *pipe) -{ -	return (struct nv40_query *)pipe; -} - -static struct pipe_query * -nv40_query_create(struct pipe_context *pipe, unsigned query_type) -{ -	struct nv40_query *q; - -	q = CALLOC(1, sizeof(struct nv40_query)); -	q->type = query_type; - -	return (struct pipe_query *)q; -} - -static void -nv40_query_destroy(struct pipe_context *pipe, struct pipe_query *pq) -{ -	struct nv40_query *q = nv40_query(pq); - -	if (q->object) -		nouveau_resource_free(&q->object); -	FREE(q); -} - -static void -nv40_query_begin(struct pipe_context *pipe, struct pipe_query *pq) -{ -	struct nvfx_context *nvfx = nvfx_context(pipe); -	struct nv40_query *q = nv40_query(pq); -	struct nvfx_screen *screen = nvfx->screen; -	struct nouveau_channel *chan = screen->base.channel; -	struct nouveau_grobj *eng3d = screen->eng3d; - -	assert(q->type == PIPE_QUERY_OCCLUSION_COUNTER); - -	/* Happens when end_query() is called, then another begin_query() -	 * without querying the result in-between.  For now we'll wait for -	 * the existing query to notify completion, but it could be better. -	 */ -	if (q->object) { -		uint64_t tmp; -		pipe->get_query_result(pipe, pq, 1, &tmp); -	} - -	if (nouveau_resource_alloc(nvfx->screen->query_heap, 1, NULL, &q->object)) -		assert(0); -	nouveau_notifier_reset(nvfx->screen->query, q->object->start); - -	BEGIN_RING(chan, eng3d, NV34TCL_QUERY_RESET, 1); -	OUT_RING  (chan, 1); -	BEGIN_RING(chan, eng3d, NV34TCL_QUERY_UNK17CC, 1); -	OUT_RING  (chan, 1); - -	q->ready = FALSE; -} - -static void -nv40_query_end(struct pipe_context *pipe, struct pipe_query *pq) -{ -	struct nvfx_context *nvfx = nvfx_context(pipe); -	struct nv40_query *q = nv40_query(pq); -	struct nvfx_screen *screen = nvfx->screen; -	struct nouveau_channel *chan = screen->base.channel; -	struct nouveau_grobj *eng3d = screen->eng3d; - -	BEGIN_RING(chan, eng3d, NV34TCL_QUERY_GET, 1); -	OUT_RING  (chan, (0x01 << NV34TCL_QUERY_GET_UNK24_SHIFT) | -		   ((q->object->start * 32) << NV34TCL_QUERY_GET_OFFSET_SHIFT)); -	FIRE_RING(chan); -} - -static boolean -nv40_query_result(struct pipe_context *pipe, struct pipe_query *pq, -		  boolean wait, uint64_t *result) -{ -	struct nvfx_context *nvfx = nvfx_context(pipe); -	struct nv40_query *q = nv40_query(pq); - -	assert(q->object && q->type == PIPE_QUERY_OCCLUSION_COUNTER); - -	if (!q->ready) { -		unsigned status; - -		status = nouveau_notifier_status(nvfx->screen->query, -						 q->object->start); -		if (status != NV_NOTIFY_STATE_STATUS_COMPLETED) { -			if (wait == FALSE) -				return FALSE; -			nouveau_notifier_wait_status(nvfx->screen->query, -					      q->object->start, -					      NV_NOTIFY_STATE_STATUS_COMPLETED, -					      0); -		} - -		q->result = nouveau_notifier_return_val(nvfx->screen->query, -							q->object->start); -		q->ready = TRUE; -		nouveau_resource_free(&q->object); -	} - -	*result = q->result; -	return TRUE; -} - -void -nv40_init_query_functions(struct nvfx_context *nvfx) -{ -	nvfx->pipe.create_query = nv40_query_create; -	nvfx->pipe.destroy_query = nv40_query_destroy; -	nvfx->pipe.begin_query = nv40_query_begin; -	nvfx->pipe.end_query = nv40_query_end; -	nvfx->pipe.get_query_result = nv40_query_result; -} diff --git a/src/gallium/drivers/nv40/nv40_surface.c b/src/gallium/drivers/nv40/nv40_surface.c deleted file mode 100644 index 328c23b8b4..0000000000 --- a/src/gallium/drivers/nv40/nv40_surface.c +++ /dev/null @@ -1,64 +0,0 @@ - -/************************************************************************** - *  - * Copyright 2003 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_defines.h" -#include "util/u_inlines.h" - -#include "util/u_tile.h" - -#include "nv40_context.h" - -static void -nv40_surface_copy(struct pipe_context *pipe, -		  struct pipe_surface *dest, unsigned destx, unsigned desty, -		  struct pipe_surface *src, unsigned srcx, unsigned srcy, -		  unsigned width, unsigned height) -{ -	struct nvfx_context *nvfx = nvfx_context(pipe); -	struct nv04_surface_2d *eng2d = nvfx->screen->eng2d; - -	eng2d->copy(eng2d, dest, destx, desty, src, srcx, srcy, width, height); -} - -static void -nv40_surface_fill(struct pipe_context *pipe, struct pipe_surface *dest, -		  unsigned destx, unsigned desty, unsigned width, -		  unsigned height, unsigned value) -{ -	struct nvfx_context *nvfx = nvfx_context(pipe); -	struct nv04_surface_2d *eng2d = nvfx->screen->eng2d; - -	eng2d->fill(eng2d, dest, destx, desty, width, height, value); -} - -void -nv40_init_surface_functions(struct nvfx_context *nvfx) -{ -	nvfx->pipe.surface_copy = nv40_surface_copy; -	nvfx->pipe.surface_fill = nv40_surface_fill; -} diff --git a/src/gallium/drivers/nvfx/Makefile b/src/gallium/drivers/nvfx/Makefile index 5073168604..f51ab1856b 100644 --- a/src/gallium/drivers/nvfx/Makefile +++ b/src/gallium/drivers/nvfx/Makefile @@ -7,11 +7,13 @@ C_SOURCES = \  	nvfx_clear.c \  	nvfx_state_emit.c \  	nvfx_miptree.c \ +	nvfx_query.c \  	nvfx_state_blend.c \  	nvfx_state_rasterizer.c \  	nvfx_state_scissor.c \          nvfx_state_stipple.c \  	nvfx_state_zsa.c \ +	nvfx_surface.c \  	nvfx_transfer.c  include ../../Makefile.template diff --git a/src/gallium/drivers/nvfx/nvfx_context.h b/src/gallium/drivers/nvfx/nvfx_context.h index 8f5013a9d6..5f61d4450d 100644 --- a/src/gallium/drivers/nvfx/nvfx_context.h +++ b/src/gallium/drivers/nvfx/nvfx_context.h @@ -189,6 +189,9 @@ extern struct nvfx_state_entry nvfx_state_sr;  extern struct nvfx_state_entry nvfx_state_stipple;  extern struct nvfx_state_entry nvfx_state_zsa; +extern void nvfx_init_query_functions(struct nvfx_context *nvfx); +extern void nvfx_init_surface_functions(struct nvfx_context *nvfx); +  /* nvfx_clear.c */  extern void nvfx_clear(struct pipe_context *pipe, unsigned buffers,  		       const float *rgba, double depth, unsigned stencil); diff --git a/src/gallium/drivers/nv30/nv30_query.c b/src/gallium/drivers/nvfx/nvfx_query.c index 53b11a8943..acbaf75a23 100644 --- a/src/gallium/drivers/nv30/nv30_query.c +++ b/src/gallium/drivers/nvfx/nvfx_query.c @@ -1,35 +1,35 @@  #include "pipe/p_context.h" -#include "nv30_context.h" +#include "nvfx_context.h" -struct nv30_query { +struct nvfx_query {  	struct nouveau_resource *object;  	unsigned type;  	boolean ready;  	uint64_t result;  }; -static INLINE struct nv30_query * -nv30_query(struct pipe_query *pipe) +static INLINE struct nvfx_query * +nvfx_query(struct pipe_query *pipe)  { -	return (struct nv30_query *)pipe; +	return (struct nvfx_query *)pipe;  }  static struct pipe_query * -nv30_query_create(struct pipe_context *pipe, unsigned query_type) +nvfx_query_create(struct pipe_context *pipe, unsigned query_type)  { -	struct nv30_query *q; +	struct nvfx_query *q; -	q = CALLOC(1, sizeof(struct nv30_query)); +	q = CALLOC(1, sizeof(struct nvfx_query));  	q->type = query_type;  	return (struct pipe_query *)q;  }  static void -nv30_query_destroy(struct pipe_context *pipe, struct pipe_query *pq) +nvfx_query_destroy(struct pipe_context *pipe, struct pipe_query *pq)  { -	struct nv30_query *q = nv30_query(pq); +	struct nvfx_query *q = nvfx_query(pq);  	if (q->object)  		nouveau_resource_free(&q->object); @@ -37,10 +37,10 @@ nv30_query_destroy(struct pipe_context *pipe, struct pipe_query *pq)  }  static void -nv30_query_begin(struct pipe_context *pipe, struct pipe_query *pq) +nvfx_query_begin(struct pipe_context *pipe, struct pipe_query *pq)  {  	struct nvfx_context *nvfx = nvfx_context(pipe); -	struct nv30_query *q = nv30_query(pq); +	struct nvfx_query *q = nvfx_query(pq);  	struct nvfx_screen *screen = nvfx->screen;  	struct nouveau_channel *chan = screen->base.channel;  	struct nouveau_grobj *eng3d = screen->eng3d; @@ -69,13 +69,13 @@ nv30_query_begin(struct pipe_context *pipe, struct pipe_query *pq)  }  static void -nv30_query_end(struct pipe_context *pipe, struct pipe_query *pq) +nvfx_query_end(struct pipe_context *pipe, struct pipe_query *pq)  {  	struct nvfx_context *nvfx = nvfx_context(pipe);  	struct nvfx_screen *screen = nvfx->screen;  	struct nouveau_channel *chan = screen->base.channel;  	struct nouveau_grobj *eng3d = screen->eng3d; -	struct nv30_query *q = nv30_query(pq); +	struct nvfx_query *q = nvfx_query(pq);  	BEGIN_RING(chan, eng3d, NV34TCL_QUERY_GET, 1);  	OUT_RING  (chan, (0x01 << NV34TCL_QUERY_GET_UNK24_SHIFT) | @@ -84,11 +84,11 @@ nv30_query_end(struct pipe_context *pipe, struct pipe_query *pq)  }  static boolean -nv30_query_result(struct pipe_context *pipe, struct pipe_query *pq, +nvfx_query_result(struct pipe_context *pipe, struct pipe_query *pq,  		  boolean wait, uint64_t *result)  {  	struct nvfx_context *nvfx = nvfx_context(pipe); -	struct nv30_query *q = nv30_query(pq); +	struct nvfx_query *q = nvfx_query(pq);  	assert(q->object && q->type == PIPE_QUERY_OCCLUSION_COUNTER); @@ -117,11 +117,11 @@ nv30_query_result(struct pipe_context *pipe, struct pipe_query *pq,  }  void -nv30_init_query_functions(struct nvfx_context *nvfx) +nvfx_init_query_functions(struct nvfx_context *nvfx)  { -	nvfx->pipe.create_query = nv30_query_create; -	nvfx->pipe.destroy_query = nv30_query_destroy; -	nvfx->pipe.begin_query = nv30_query_begin; -	nvfx->pipe.end_query = nv30_query_end; -	nvfx->pipe.get_query_result = nv30_query_result; +	nvfx->pipe.create_query = nvfx_query_create; +	nvfx->pipe.destroy_query = nvfx_query_destroy; +	nvfx->pipe.begin_query = nvfx_query_begin; +	nvfx->pipe.end_query = nvfx_query_end; +	nvfx->pipe.get_query_result = nvfx_query_result;  } diff --git a/src/gallium/drivers/nv30/nv30_surface.c b/src/gallium/drivers/nvfx/nvfx_surface.c index 613a9fa492..8a05ad0a57 100644 --- a/src/gallium/drivers/nv30/nv30_surface.c +++ b/src/gallium/drivers/nvfx/nvfx_surface.c @@ -1,9 +1,9 @@  /************************************************************************** - *  + *   * Copyright 2003 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 @@ -11,11 +11,11 @@   * 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. @@ -23,16 +23,16 @@   * 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 "nv30_context.h" +#include "nvfx_context.h"  #include "pipe/p_defines.h"  #include "util/u_inlines.h"  #include "util/u_tile.h"  static void -nv30_surface_copy(struct pipe_context *pipe, +nvfx_surface_copy(struct pipe_context *pipe,  		  struct pipe_surface *dest, unsigned destx, unsigned desty,  		  struct pipe_surface *src, unsigned srcx, unsigned srcy,  		  unsigned width, unsigned height) @@ -44,7 +44,7 @@ nv30_surface_copy(struct pipe_context *pipe,  }  static void -nv30_surface_fill(struct pipe_context *pipe, struct pipe_surface *dest, +nvfx_surface_fill(struct pipe_context *pipe, struct pipe_surface *dest,  		  unsigned destx, unsigned desty, unsigned width,  		  unsigned height, unsigned value)  { @@ -55,8 +55,8 @@ nv30_surface_fill(struct pipe_context *pipe, struct pipe_surface *dest,  }  void -nv30_init_surface_functions(struct nvfx_context *nvfx) +nvfx_init_surface_functions(struct nvfx_context *nvfx)  { -	nvfx->pipe.surface_copy = nv30_surface_copy; -	nvfx->pipe.surface_fill = nv30_surface_fill; +	nvfx->pipe.surface_copy = nvfx_surface_copy; +	nvfx->pipe.surface_fill = nvfx_surface_fill;  }  | 
