[Libva] [PATCH v2] debug: add g_intel_debug_option_flags for simple driver debug

Zhao, Yakui yakui.zhao at intel.com
Tue May 27 19:59:16 PDT 2014


On Wed, 2014-05-28 at 10:54 +0800, Zhao, Halley wrote:
> From: "Zhao, Halley" <halley.zhao at intel.com>
> 

Looks good to me.

Add: Reviewed-by: Zhao, Yakui <yakui.zhao at intel.com>

Thanks.
    Yakui
> VA_INTEL_DEBUG_ASSERT decides assert() is enabled or not
> VA_INTEL_DEBUG_BENCH  decides skip putsurface or not
> ---
>  src/i965_output_dri.c |  5 ++---
>  src/intel_driver.c    | 15 +++++++++++++++
>  src/intel_driver.h    |  9 +++++++--
>  3 files changed, 24 insertions(+), 5 deletions(-)
> 
> diff --git a/src/i965_output_dri.c b/src/i965_output_dri.c
> index 717ee9a..9b00d1b 100644
> --- a/src/i965_output_dri.c
> +++ b/src/i965_output_dri.c
> @@ -137,8 +137,7 @@ i965_put_surface_dri(
>       * will get here
>       */
>      obj_surface = SURFACE(surface);
> -    if (!obj_surface || !obj_surface->bo)
> -        return VA_STATUS_SUCCESS;
> +    ASSERT_RET(obj_surface && obj_surface->bo, VA_STATUS_SUCCESS);
>  
>      _i965LockMutex(&i965->render_mutex);
>  
> @@ -204,7 +203,7 @@ i965_put_surface_dri(
>          }
>      }
>  
> -    if (!getenv("INTEL_DEBUG_BENCH"))
> +    if (!(g_intel_debug_option_flags & VA_INTEL_DEBUG_OPTION_BENCH))
>          dri_vtable->swap_buffer(ctx, dri_drawable);
>      obj_surface->flags |= SURFACE_DISPLAYED;
>  
> diff --git a/src/intel_driver.c b/src/intel_driver.c
> index e3e082d..2451d06 100644
> --- a/src/intel_driver.c
> +++ b/src/intel_driver.c
> @@ -34,6 +34,7 @@
>  #include "intel_batchbuffer.h"
>  #include "intel_memman.h"
>  #include "intel_driver.h"
> +uint32_t g_intel_debug_option_flags = 0;
>  
>  static Bool
>  intel_driver_get_param(struct intel_driver_data *intel, int param, int *value)
> @@ -75,6 +76,20 @@ intel_driver_init(VADriverContextP ctx)
>      struct intel_driver_data *intel = intel_driver_data(ctx);
>      struct drm_state * const drm_state = (struct drm_state *)ctx->drm_state;
>      int has_exec2 = 0, has_bsd = 0, has_blt = 0, has_vebox = 0;
> +    char *env_str = NULL;
> +
> +    g_intel_debug_option_flags = 0;
> +    if ((env_str = getenv("VA_INTEL_DEBUG_ALL")))
> +        g_intel_debug_option_flags = atoi(env_str);
> +
> +    if ((env_str = getenv("VA_INTEL_DEBUG_ASSERT")) && (*env_str == '1'))
> +        g_intel_debug_option_flags |= VA_INTEL_DEBUG_OPTION_ASSERT;
> +
> +    if ((env_str = getenv("VA_INTEL_DEBUG_BENCH")) && (*env_str == '1'))
> +        g_intel_debug_option_flags |= VA_INTEL_DEBUG_OPTION_BENCH;
> +
> +    if (g_intel_debug_option_flags)
> +        fprintf(stderr, "g_intel_debug_option_flags:%x\n", g_intel_debug_option_flags);
>  
>      assert(drm_state);
>      assert(VA_CHECK_DRM_AUTH_TYPE(ctx, VA_DRM_AUTH_DRI1) ||
> diff --git a/src/intel_driver.h b/src/intel_driver.h
> index 6653f43..487bf03 100644
> --- a/src/intel_driver.h
> +++ b/src/intel_driver.h
> @@ -76,9 +76,14 @@ struct intel_batchbuffer;
>  #define True 1
>  #define False 0
>  
> +extern uint32_t g_intel_debug_option_flags;
> +#define VA_INTEL_DEBUG_OPTION_ASSERT    (1 << 0)
> +#define VA_INTEL_DEBUG_OPTION_BENCH     (1 << 1)
> +
>  #define ASSERT_RET(value, fail_ret) do {    \
> -        if (!(value)) {                 \
> -            assert(0);                      \
> +        if (!(value)) {                     \
> +            if (g_intel_debug_option_flags & VA_INTEL_DEBUG_OPTION_ASSERT)       \
> +                assert(value);              \
>              return fail_ret;                \
>          }                                   \
>      } while (0)




More information about the Libva mailing list