Home | History | Annotate | Download | only in Pipeline
      1 // Copyright 2016 The SwiftShader Authors. All Rights Reserved.
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //    http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 #ifndef sw_Constants_hpp
     16 #define sw_Constants_hpp
     17 
     18 #include "System/Types.hpp"
     19 
     20 namespace sw
     21 {
     22 	struct Constants
     23 	{
     24 		Constants();
     25 
     26 		unsigned int transposeBit0[16];
     27 		unsigned int transposeBit1[16];
     28 		unsigned int transposeBit2[16];
     29 
     30 		ushort4 cWeight[17];
     31 		float4 uvWeight[17];
     32 		float4 uvStart[17];
     33 
     34 		unsigned int occlusionCount[16];
     35 
     36 		byte8 maskB4Q[16];
     37 		byte8 invMaskB4Q[16];
     38 		word4 maskW4Q[16];
     39 		word4 invMaskW4Q[16];
     40 		dword4 maskD4X[16];
     41 		dword4 invMaskD4X[16];
     42 		qword maskQ0Q[16];
     43 		qword maskQ1Q[16];
     44 		qword maskQ2Q[16];
     45 		qword maskQ3Q[16];
     46 		qword invMaskQ0Q[16];
     47 		qword invMaskQ1Q[16];
     48 		qword invMaskQ2Q[16];
     49 		qword invMaskQ3Q[16];
     50 		dword4 maskX0X[16];
     51 		dword4 maskX1X[16];
     52 		dword4 maskX2X[16];
     53 		dword4 maskX3X[16];
     54 		dword4 invMaskX0X[16];
     55 		dword4 invMaskX1X[16];
     56 		dword4 invMaskX2X[16];
     57 		dword4 invMaskX3X[16];
     58 		dword2 maskD01Q[16];
     59 		dword2 maskD23Q[16];
     60 		dword2 invMaskD01Q[16];
     61 		dword2 invMaskD23Q[16];
     62 		qword2 maskQ01X[16];
     63 		qword2 maskQ23X[16];
     64 		qword2 invMaskQ01X[16];
     65 		qword2 invMaskQ23X[16];
     66 		word4 maskW01Q[4];
     67 		dword4 maskD01X[4];
     68 		word4 mask565Q[8];
     69 
     70 		unsigned short sRGBtoLinear8_16[256];
     71 		unsigned short sRGBtoLinear6_16[64];
     72 		unsigned short sRGBtoLinear5_16[32];
     73 
     74 		unsigned short linearToSRGB12_16[4096];
     75 		unsigned short sRGBtoLinear12_16[4096];
     76 
     77 		// Centroid parameters
     78 		float4 sampleX[4][16];
     79 		float4 sampleY[4][16];
     80 		float4 weight[16];
     81 
     82 		// Fragment offsets
     83 		int Xf[4];
     84 		int Yf[4];
     85 
     86 		float4 X[4];
     87 		float4 Y[4];
     88 
     89 		dword maxX[16];
     90 		dword maxY[16];
     91 		dword maxZ[16];
     92 		dword minX[16];
     93 		dword minY[16];
     94 		dword minZ[16];
     95 		dword fini[16];
     96 
     97 		dword4 maxPos;
     98 
     99 		float4 unscaleByte;
    100 		float4 unscaleSByte;
    101 		float4 unscaleShort;
    102 		float4 unscaleUShort;
    103 		float4 unscaleInt;
    104 		float4 unscaleUInt;
    105 		float4 unscaleFixed;
    106 
    107 		float half2float[65536];
    108 	};
    109 
    110 	extern Constants constants;
    111 }
    112 
    113 #endif   // sw_Constants_hpp
    114