[Mesa-dev] [PATCH 2/5] draw/llvm: use an enum instead of magic numbers

Jose Fonseca jfonseca at vmware.com
Wed Apr 3 07:12:34 PDT 2013



----- Original Message -----
> I think this was there before and got accidently
> removed during a merge. Same code as for the GS
> context, which is also using an enum instead of
> hardcoded numbers.
> 
> Signed-off-by: Zack Rusin <zackr at vmware.com>
> ---
>  src/gallium/auxiliary/draw/draw_llvm.c |    8 ++++----
>  src/gallium/auxiliary/draw/draw_llvm.h |   17 +++++++++++------
>  2 files changed, 15 insertions(+), 10 deletions(-)
> 
> diff --git a/src/gallium/auxiliary/draw/draw_llvm.c
> b/src/gallium/auxiliary/draw/draw_llvm.c
> index d0199bb..5100ce0 100644
> --- a/src/gallium/auxiliary/draw/draw_llvm.c
> +++ b/src/gallium/auxiliary/draw/draw_llvm.c
> @@ -203,7 +203,7 @@ create_jit_context_type(struct gallivm_state *gallivm,
>  {
>     LLVMTargetDataRef target = gallivm->target;
>     LLVMTypeRef float_type = LLVMFloatTypeInContext(gallivm->context);
> -   LLVMTypeRef elem_types[5];
> +   LLVMTypeRef elem_types[DRAW_JIT_CTX_NUM_FIELDS];
>     LLVMTypeRef context_type;
>  
>     elem_types[0] = LLVMArrayType(LLVMPointerType(float_type, 0), /*
>     vs_constants */
> @@ -224,11 +224,11 @@ create_jit_context_type(struct gallivm_state *gallivm,
>  #endif
>  
>     LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, vs_constants,
> -                          target, context_type, 0);
> +                          target, context_type, DRAW_JIT_CTX_CONSTANTS);
>     LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, planes,
> -                          target, context_type, 1);
> +                          target, context_type, DRAW_JIT_CTX_PLANES);
>     LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, viewport,
> -                          target, context_type, 2);
> +                          target, context_type, DRAW_JIT_CTX_VIEWPORT);
>     LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, textures,
>                            target, context_type,
>                            DRAW_JIT_CTX_TEXTURES);
> diff --git a/src/gallium/auxiliary/draw/draw_llvm.h
> b/src/gallium/auxiliary/draw/draw_llvm.h
> index 8df02a2..5909fc1 100644
> --- a/src/gallium/auxiliary/draw/draw_llvm.h
> +++ b/src/gallium/auxiliary/draw/draw_llvm.h
> @@ -130,18 +130,23 @@ struct draw_jit_context
>     struct draw_jit_sampler samplers[PIPE_MAX_SAMPLERS];
>  };
>  
> +enum {
> +   DRAW_JIT_CTX_CONSTANTS   = 0,
> +   DRAW_JIT_CTX_PLANES      = 1,
> +   DRAW_JIT_CTX_VIEWPORT    = 2,
> +   DRAW_JIT_CTX_TEXTURES    = 3,
> +   DRAW_JIT_CTX_SAMPLERS    = 4,
> +   DRAW_JIT_CTX_NUM_FIELDS
> +};
>  
>  #define draw_jit_context_vs_constants(_gallivm, _ptr) \
> -   lp_build_struct_get_ptr(_gallivm, _ptr, 0, "vs_constants")
> +   lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_CTX_CONSTANTS,
> "vs_constants")
>  
>  #define draw_jit_context_planes(_gallivm, _ptr) \
> -   lp_build_struct_get(_gallivm, _ptr, 1, "planes")
> +   lp_build_struct_get(_gallivm, _ptr, DRAW_JIT_CTX_PLANES, "planes")
>  
>  #define draw_jit_context_viewport(_gallivm, _ptr) \
> -   lp_build_struct_get(_gallivm, _ptr, 2, "viewport")
> -
> -#define DRAW_JIT_CTX_TEXTURES 3
> -#define DRAW_JIT_CTX_SAMPLERS 4
> +   lp_build_struct_get(_gallivm, _ptr, DRAW_JIT_CTX_VIEWPORT, "viewport")
>  
>  #define draw_jit_context_textures(_gallivm, _ptr) \
>     lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_CTX_TEXTURES,
>     "textures")
> --
> 1.7.10.4

Thanks for this nice cleanup Zack. Series looks good AFAICT.

Jose


More information about the mesa-dev mailing list