"Fossies" - the Fresh Open Source Software Archive

Member "mesa-20.1.8/src/gallium/drivers/r300/compiler/radeon_swizzle.h" (16 Sep 2020, 2044 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 "radeon_swizzle.h" see the Fossies "Dox" file reference documentation.

    1 /*
    2  * Copyright (C) 2009 Nicolai Haehnle.
    3  *
    4  * All Rights Reserved.
    5  *
    6  * Permission is hereby granted, free of charge, to any person obtaining
    7  * a 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, sublicense, 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
   16  * portions of the Software.
   17  *
   18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
   19  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   20  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   21  * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
   22  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
   23  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
   24  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   25  *
   26  */
   27 
   28 #ifndef RADEON_SWIZZLE_H
   29 #define RADEON_SWIZZLE_H
   30 
   31 #include "radeon_program.h"
   32 
   33 struct rc_swizzle_split {
   34     unsigned char NumPhases;
   35     unsigned char Phase[4];
   36 };
   37 
   38 /**
   39  * Describe the swizzling capability of target hardware.
   40  */
   41 struct rc_swizzle_caps {
   42     /**
   43      * Check whether the given swizzle, absolute and negate combination
   44      * can be implemented natively by the hardware for this opcode.
   45      *
   46      * \return 1 if the swizzle is native for the given opcode
   47      */
   48     int (*IsNative)(rc_opcode opcode, struct rc_src_register reg);
   49 
   50     /**
   51      * Determine how to split access to the masked channels of the
   52      * given source register to obtain ALU-native swizzles.
   53      */
   54     void (*Split)(struct rc_src_register reg, unsigned int mask, struct rc_swizzle_split * split);
   55 };
   56 
   57 extern struct rc_swizzle_caps r300_vertprog_swizzle_caps;
   58 
   59 #endif /* RADEON_SWIZZLE_H */