"Fossies" - the Fresh Open Source Software Archive

Member "mesa-20.1.8/src/gallium/drivers/llvmpipe/lp_bld_depth.h" (16 Sep 2020, 4206 Bytes) of package /linux/misc/mesa-20.1.8.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "lp_bld_depth.h" see the Fossies "Dox" file reference documentation and the last Fossies "Diffs" side-by-side code changes report: 20.1.5_vs_20.2.0-rc1.

    1 /**************************************************************************
    2  *
    3  * Copyright 2009 VMware, Inc.
    4  * All Rights Reserved.
    5  *
    6  * Permission is hereby granted, free of charge, to any person obtaining a
    7  * copy of this software and associated documentation files (the
    8  * "Software"), to deal in the Software without restriction, including
    9  * without limitation the rights to use, copy, modify, merge, publish,
   10  * distribute, sub license, and/or sell copies of the Software, and to
   11  * permit persons to whom the Software is furnished to do so, subject to
   12  * the following conditions:
   13  *
   14  * The above copyright notice and this permission notice (including the
   15  * next paragraph) shall be included in all copies or substantial portions
   16  * of the Software.
   17  *
   18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
   19  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   20  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
   21  * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
   22  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   23  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   24  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   25  *
   26  **************************************************************************/
   27 
   28 
   29 /**
   30  * Depth/stencil testing to LLVM IR translation.
   31  *
   32  * @author Jose Fonseca <jfonseca@vmware.com>
   33  */
   34 
   35 #ifndef LP_BLD_DEPTH_H
   36 #define LP_BLD_DEPTH_H
   37 
   38 
   39 #include "pipe/p_compiler.h"
   40 #include "pipe/p_state.h"
   41 
   42 #include "gallivm/lp_bld.h"
   43 
   44  
   45 struct pipe_depth_state;
   46 struct gallivm_state;
   47 struct util_format_description;
   48 struct lp_type;
   49 struct lp_build_mask_context;
   50 
   51 
   52 struct lp_type
   53 lp_depth_type(const struct util_format_description *format_desc,
   54               unsigned length);
   55 
   56 
   57 void
   58 lp_build_depth_stencil_test(struct gallivm_state *gallivm,
   59                             const struct pipe_depth_state *depth,
   60                             const struct pipe_stencil_state stencil[2],
   61                             struct lp_type z_src_type,
   62                             const struct util_format_description *format_desc,
   63                             struct lp_build_mask_context *mask,
   64                             LLVMValueRef stencil_refs[2],
   65                             LLVMValueRef z_src,
   66                             LLVMValueRef z_fb,
   67                             LLVMValueRef s_fb,
   68                             LLVMValueRef face,
   69                             LLVMValueRef *z_value,
   70                             LLVMValueRef *s_value,
   71                             boolean do_branch);
   72 
   73 void
   74 lp_build_depth_stencil_load_swizzled(struct gallivm_state *gallivm,
   75                                      struct lp_type z_src_type,
   76                                      const struct util_format_description *format_desc,
   77                                      boolean is_1d,
   78                                      LLVMValueRef depth_ptr,
   79                                      LLVMValueRef depth_stride,
   80                                      LLVMValueRef *z_fb,
   81                                      LLVMValueRef *s_fb,
   82                                      LLVMValueRef loop_counter);
   83 
   84 void
   85 lp_build_depth_stencil_write_swizzled(struct gallivm_state *gallivm,
   86                                       struct lp_type z_src_type,
   87                                       const struct util_format_description *format_desc,
   88                                       boolean is_1d,
   89                                       struct lp_build_mask_context *mask,
   90                                       LLVMValueRef z_fb,
   91                                       LLVMValueRef s_fb,
   92                                       LLVMValueRef loop_counter,
   93                                       LLVMValueRef depth_ptr,
   94                                       LLVMValueRef depth_stride,
   95                                       LLVMValueRef z_value,
   96                                       LLVMValueRef s_value);
   97 
   98 
   99 void
  100 lp_build_occlusion_count(struct gallivm_state *gallivm,
  101                          struct lp_type type,
  102                          LLVMValueRef maskvalue,
  103                          LLVMValueRef counter);
  104 
  105 #endif /* !LP_BLD_DEPTH_H */