[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