[Mesa-dev] [PATCH 1/2] nv50: add a header file for nv50_query
Tobias Klausmann
tobias.johannes.klausmann at mni.thm.de
Sun May 17 09:46:45 PDT 2015
Reviewed-by: Tobias Klausmann <tobias.johannes.klausmann at mni.thm.de>
On 17.05.2015 18:19, Samuel Pitoiset wrote:
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
> src/gallium/drivers/nouveau/Makefile.sources | 1 +
> src/gallium/drivers/nouveau/nv50/nv50_context.h | 12 +-------
> src/gallium/drivers/nouveau/nv50/nv50_query.c | 21 +------------
> src/gallium/drivers/nouveau/nv50/nv50_query.h | 41 +++++++++++++++++++++++++
> 4 files changed, 44 insertions(+), 31 deletions(-)
> create mode 100644 src/gallium/drivers/nouveau/nv50/nv50_query.h
>
> diff --git a/src/gallium/drivers/nouveau/Makefile.sources b/src/gallium/drivers/nouveau/Makefile.sources
> index 3fae3bc..54f174e 100644
> --- a/src/gallium/drivers/nouveau/Makefile.sources
> +++ b/src/gallium/drivers/nouveau/Makefile.sources
> @@ -73,6 +73,7 @@ NV50_C_SOURCES := \
> nv50/nv50_program.h \
> nv50/nv50_push.c \
> nv50/nv50_query.c \
> + nv50/nv50_query.h \
> nv50/nv50_resource.c \
> nv50/nv50_resource.h \
> nv50/nv50_screen.c \
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_context.h b/src/gallium/drivers/nouveau/nv50/nv50_context.h
> index 1f123ef..3f086d3 100644
> --- a/src/gallium/drivers/nouveau/nv50/nv50_context.h
> +++ b/src/gallium/drivers/nouveau/nv50/nv50_context.h
> @@ -16,6 +16,7 @@
> #include "nv50/nv50_program.h"
> #include "nv50/nv50_resource.h"
> #include "nv50/nv50_transfer.h"
> +#include "nv50/nv50_query.h"
>
> #include "nouveau_context.h"
> #include "nouveau_debug.h"
> @@ -195,17 +196,6 @@ void nv50_default_kick_notify(struct nouveau_pushbuf *);
> /* nv50_draw.c */
> extern struct draw_stage *nv50_draw_render_stage(struct nv50_context *);
>
> -/* nv50_query.c */
> -void nv50_init_query_functions(struct nv50_context *);
> -void nv50_query_pushbuf_submit(struct nouveau_pushbuf *,
> - struct pipe_query *, unsigned result_offset);
> -void nv84_query_fifo_wait(struct nouveau_pushbuf *, struct pipe_query *);
> -void nva0_so_target_save_offset(struct pipe_context *,
> - struct pipe_stream_output_target *,
> - unsigned index, boolean seralize);
> -
> -#define NVA0_QUERY_STREAM_OUTPUT_BUFFER_OFFSET (PIPE_QUERY_TYPES + 0)
> -
> /* nv50_shader_state.c */
> void nv50_vertprog_validate(struct nv50_context *);
> void nv50_gmtyprog_validate(struct nv50_context *);
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_query.c b/src/gallium/drivers/nouveau/nv50/nv50_query.c
> index 6690aa2..ebad6c2 100644
> --- a/src/gallium/drivers/nouveau/nv50/nv50_query.c
> +++ b/src/gallium/drivers/nouveau/nv50/nv50_query.c
> @@ -25,6 +25,7 @@
> #define NV50_PUSH_EXPLICIT_SPACE_CHECKING
>
> #include "nv50/nv50_context.h"
> +#include "nv50/nv50_query.h"
> #include "nv_object.xml.h"
>
> /* XXX: Nested queries, and simultaneous queries on multiple gallium contexts
> @@ -34,28 +35,8 @@
> * queries anyway.
> */
>
> -struct nv50_query {
> - uint32_t *data;
> - uint16_t type;
> - uint16_t index;
> - uint32_t sequence;
> - struct nouveau_bo *bo;
> - uint32_t base;
> - uint32_t offset; /* base + i * 32 */
> - boolean ready;
> - boolean flushed;
> - boolean is64bit;
> - struct nouveau_mm_allocation *mm;
> -};
> -
> #define NV50_QUERY_ALLOC_SPACE 256
>
> -static INLINE struct nv50_query *
> -nv50_query(struct pipe_query *pipe)
> -{
> - return (struct nv50_query *)pipe;
> -}
> -
> static boolean
> nv50_query_allocate(struct nv50_context *nv50, struct nv50_query *q, int size)
> {
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_query.h b/src/gallium/drivers/nouveau/nv50/nv50_query.h
> new file mode 100644
> index 0000000..539b4a0
> --- /dev/null
> +++ b/src/gallium/drivers/nouveau/nv50/nv50_query.h
> @@ -0,0 +1,41 @@
> +#ifndef __NV50_QUERY_H__
> +#define __NV50_QUERY_H__
> +
> +#include "pipe/p_context.h"
> +
> +#include "nouveau_context.h"
> +#include "nouveau_mm.h"
> +
> +#define NVA0_QUERY_STREAM_OUTPUT_BUFFER_OFFSET (PIPE_QUERY_TYPES + 0)
> +
> +struct nv50_context;
> +
> +struct nv50_query {
> + uint32_t *data;
> + uint16_t type;
> + uint16_t index;
> + uint32_t sequence;
> + struct nouveau_bo *bo;
> + uint32_t base;
> + uint32_t offset; /* base + i * 32 */
> + boolean ready;
> + boolean flushed;
> + boolean is64bit;
> + struct nouveau_mm_allocation *mm;
> +};
> +
> +static INLINE struct nv50_query *
> +nv50_query(struct pipe_query *pipe)
> +{
> + return (struct nv50_query *)pipe;
> +}
> +
> +void nv50_init_query_functions(struct nv50_context *);
> +void nv50_query_pushbuf_submit(struct nouveau_pushbuf *,
> + struct pipe_query *, unsigned result_offset);
> +void nv84_query_fifo_wait(struct nouveau_pushbuf *, struct pipe_query *);
> +void nva0_so_target_save_offset(struct pipe_context *,
> + struct pipe_stream_output_target *,
> + unsigned index, boolean seralize);
> +
> +#endif /* NV50_QUERY_H */
More information about the mesa-dev
mailing list