Home | History | Annotate | Download | only in D3D9
      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 #include "Capabilities.hpp"
     16 
     17 #include "Main/Config.hpp"
     18 
     19 namespace D3D9
     20 {
     21 	bool Capabilities::Surface::RenderTarget::NULL_ = true;
     22 	bool Capabilities::Surface::RenderTarget::R8G8B8 = false;
     23 	bool Capabilities::Surface::RenderTarget::R5G6B5 = true;
     24 	bool Capabilities::Surface::RenderTarget::X1R5G5B5 = true;
     25 	bool Capabilities::Surface::RenderTarget::A1R5G5B5 = true;
     26 	bool Capabilities::Surface::RenderTarget::A4R4G4B4 = true;
     27 	bool Capabilities::Surface::RenderTarget::R3G3B2 = false;
     28 	bool Capabilities::Surface::RenderTarget::A8R3G3B2 = false;
     29 	bool Capabilities::Surface::RenderTarget::X4R4G4B4 = true;
     30 	bool Capabilities::Surface::RenderTarget::A8R8G8B8 = true;
     31 	bool Capabilities::Surface::RenderTarget::X8R8G8B8 = true;
     32 	bool Capabilities::Surface::RenderTarget::A8B8G8R8 = true;
     33 	bool Capabilities::Surface::RenderTarget::X8B8G8R8 = true;
     34 	bool Capabilities::Surface::RenderTarget::G16R16 = true;
     35 	bool Capabilities::Surface::RenderTarget::A2B10G10R10 = true;
     36 	bool Capabilities::Surface::RenderTarget::A2R10G10B10 = true;
     37 	bool Capabilities::Surface::RenderTarget::A16B16G16R16 = true;
     38 	bool Capabilities::Surface::RenderTarget::R16F = true;
     39 	bool Capabilities::Surface::RenderTarget::G16R16F = true;
     40 	bool Capabilities::Surface::RenderTarget::A16B16G16R16F = true;
     41 	bool Capabilities::Surface::RenderTarget::R32F = true;
     42 	bool Capabilities::Surface::RenderTarget::G32R32F = true;
     43 	bool Capabilities::Surface::RenderTarget::A32B32G32R32F = true;
     44 
     45 	bool Capabilities::Surface::DepthStencil::D32 = true;
     46 	bool Capabilities::Surface::DepthStencil::D24S8 = true;
     47 	bool Capabilities::Surface::DepthStencil::D24X8 = true;
     48 	bool Capabilities::Surface::DepthStencil::D16 = true;
     49 	bool Capabilities::Surface::DepthStencil::D24FS8 = true;
     50 	bool Capabilities::Surface::DepthStencil::D32F_LOCKABLE = true;
     51 	bool Capabilities::Surface::DepthStencil::DF24 = true;
     52 	bool Capabilities::Surface::DepthStencil::DF16 = true;
     53 	bool Capabilities::Surface::DepthStencil::INTZ = true;
     54 
     55 	bool Capabilities::Surface::A8 = true;
     56 	bool Capabilities::Surface::R5G6B5 = true;
     57 	bool Capabilities::Surface::X1R5G5B5 = true;
     58 	bool Capabilities::Surface::A1R5G5B5 = true;
     59 	bool Capabilities::Surface::A4R4G4B4 = true;
     60 	bool Capabilities::Surface::R3G3B2 = true;
     61 	bool Capabilities::Surface::A8R3G3B2 = true;
     62 	bool Capabilities::Surface::X4R4G4B4 = true;
     63 	bool Capabilities::Surface::R8G8B8 = true;
     64 	bool Capabilities::Surface::X8R8G8B8 = true;
     65 	bool Capabilities::Surface::A8R8G8B8 = true;
     66 	bool Capabilities::Surface::X8B8G8R8 = true;
     67 	bool Capabilities::Surface::A8B8G8R8 = true;
     68 	bool Capabilities::Surface::P8 = false;
     69 	bool Capabilities::Surface::A8P8 = false;
     70 	bool Capabilities::Surface::G16R16 = true;
     71 	bool Capabilities::Surface::A2R10G10B10 = true;
     72 	bool Capabilities::Surface::A2B10G10R10 = true;
     73 	bool Capabilities::Surface::A16B16G16R16 = true;
     74 	bool Capabilities::Surface::DXT1 = S3TC_SUPPORT;
     75 	bool Capabilities::Surface::DXT2 = S3TC_SUPPORT;
     76 	bool Capabilities::Surface::DXT3 = S3TC_SUPPORT;
     77 	bool Capabilities::Surface::DXT4 = S3TC_SUPPORT;
     78 	bool Capabilities::Surface::DXT5 = S3TC_SUPPORT;
     79 	bool Capabilities::Surface::ATI1 = S3TC_SUPPORT;
     80 	bool Capabilities::Surface::ATI2 = S3TC_SUPPORT;
     81 	bool Capabilities::Surface::R16F = true;
     82 	bool Capabilities::Surface::G16R16F = true;
     83 	bool Capabilities::Surface::A16B16G16R16F = true;
     84 	bool Capabilities::Surface::R32F = true;
     85 	bool Capabilities::Surface::G32R32F = true;
     86 	bool Capabilities::Surface::A32B32G32R32F = true;
     87 	bool Capabilities::Surface::V8U8 = true;
     88 	bool Capabilities::Surface::L6V5U5 = true;
     89 	bool Capabilities::Surface::X8L8V8U8 = true;
     90 	bool Capabilities::Surface::Q8W8V8U8 = true;
     91 	bool Capabilities::Surface::V16U16 = true;
     92 	bool Capabilities::Surface::A2W10V10U10 = true;
     93 	bool Capabilities::Surface::Q16W16V16U16 = true;
     94 	bool Capabilities::Surface::L8 = true;
     95 	bool Capabilities::Surface::A4L4 = true;
     96 	bool Capabilities::Surface::L16 = true;
     97 	bool Capabilities::Surface::A8L8 = true;
     98 	bool Capabilities::Surface::NVDB = false;
     99 	bool Capabilities::Surface::ATOC = true;
    100 
    101 	bool Capabilities::Volume::A8 = true;
    102 	bool Capabilities::Volume::R5G6B5 = true;
    103 	bool Capabilities::Volume::X1R5G5B5 = true;
    104 	bool Capabilities::Volume::A1R5G5B5 = true;
    105 	bool Capabilities::Volume::A4R4G4B4 = true;
    106 	bool Capabilities::Volume::R3G3B2 = true;
    107 	bool Capabilities::Volume::A8R3G3B2 = true;
    108 	bool Capabilities::Volume::X4R4G4B4 = true;
    109 	bool Capabilities::Volume::R8G8B8 = false;
    110 	bool Capabilities::Volume::X8R8G8B8 = true;
    111 	bool Capabilities::Volume::A8R8G8B8 = true;
    112 	bool Capabilities::Volume::X8B8G8R8 = true;
    113 	bool Capabilities::Volume::A8B8G8R8 = true;
    114 	bool Capabilities::Volume::P8 = false;
    115 	bool Capabilities::Volume::A8P8 = false;
    116 	bool Capabilities::Volume::G16R16 = true;
    117 	bool Capabilities::Volume::A2R10G10B10 = true;
    118 	bool Capabilities::Volume::A2B10G10R10 = true;
    119 	bool Capabilities::Volume::A16B16G16R16 = true;
    120 	bool Capabilities::Volume::DXT1 = S3TC_SUPPORT;
    121 	bool Capabilities::Volume::DXT2 = S3TC_SUPPORT;
    122 	bool Capabilities::Volume::DXT3 = S3TC_SUPPORT;
    123 	bool Capabilities::Volume::DXT4 = S3TC_SUPPORT;
    124 	bool Capabilities::Volume::DXT5 = S3TC_SUPPORT;
    125 	bool Capabilities::Volume::ATI1 = S3TC_SUPPORT;
    126 	bool Capabilities::Volume::ATI2 = S3TC_SUPPORT;
    127 	bool Capabilities::Volume::R16F = true;
    128 	bool Capabilities::Volume::G16R16F = true;
    129 	bool Capabilities::Volume::A16B16G16R16F = true;
    130 	bool Capabilities::Volume::R32F = true;
    131 	bool Capabilities::Volume::G32R32F = true;
    132 	bool Capabilities::Volume::A32B32G32R32F = true;
    133 	bool Capabilities::Volume::V8U8 = true;
    134 	bool Capabilities::Volume::L6V5U5 = true;
    135 	bool Capabilities::Volume::X8L8V8U8 = true;
    136 	bool Capabilities::Volume::Q8W8V8U8 = true;
    137 	bool Capabilities::Volume::V16U16 = true;
    138 	bool Capabilities::Volume::A2W10V10U10 = true;
    139 	bool Capabilities::Volume::Q16W16V16U16 = true;
    140 	bool Capabilities::Volume::L8 = true;
    141 	bool Capabilities::Volume::A4L4 = true;
    142 	bool Capabilities::Volume::L16 = true;
    143 	bool Capabilities::Volume::A8L8 = true;
    144 
    145 	bool Capabilities::CubeMap::RenderTarget::NULL_ = true;
    146 	bool Capabilities::CubeMap::RenderTarget::R8G8B8 = false;
    147 	bool Capabilities::CubeMap::RenderTarget::R5G6B5 = true;
    148 	bool Capabilities::CubeMap::RenderTarget::X1R5G5B5 = true;
    149 	bool Capabilities::CubeMap::RenderTarget::A1R5G5B5 = true;
    150 	bool Capabilities::CubeMap::RenderTarget::A4R4G4B4 = true;
    151 	bool Capabilities::CubeMap::RenderTarget::R3G3B2 = false;
    152 	bool Capabilities::CubeMap::RenderTarget::A8R3G3B2 = false;
    153 	bool Capabilities::CubeMap::RenderTarget::X4R4G4B4 = true;
    154 	bool Capabilities::CubeMap::RenderTarget::A8R8G8B8 = true;
    155 	bool Capabilities::CubeMap::RenderTarget::X8R8G8B8 = true;
    156 	bool Capabilities::CubeMap::RenderTarget::A8B8G8R8 = true;
    157 	bool Capabilities::CubeMap::RenderTarget::X8B8G8R8 = true;
    158 	bool Capabilities::CubeMap::RenderTarget::G16R16 = true;
    159 	bool Capabilities::CubeMap::RenderTarget::A2B10G10R10 = true;
    160 	bool Capabilities::CubeMap::RenderTarget::A2R10G10B10 = true;
    161 	bool Capabilities::CubeMap::RenderTarget::A16B16G16R16 = true;
    162 	bool Capabilities::CubeMap::RenderTarget::R16F = true;
    163 	bool Capabilities::CubeMap::RenderTarget::G16R16F = true;
    164 	bool Capabilities::CubeMap::RenderTarget::A16B16G16R16F = true;
    165 	bool Capabilities::CubeMap::RenderTarget::R32F = true;
    166 	bool Capabilities::CubeMap::RenderTarget::G32R32F = true;
    167 	bool Capabilities::CubeMap::RenderTarget::A32B32G32R32F = true;
    168 
    169 	bool Capabilities::CubeMap::DepthStencil::D32 = false;
    170 	bool Capabilities::CubeMap::DepthStencil::D24S8 = false;
    171 	bool Capabilities::CubeMap::DepthStencil::D24X8 = false;
    172 	bool Capabilities::CubeMap::DepthStencil::D16 = false;
    173 	bool Capabilities::CubeMap::DepthStencil::D24FS8 = false;
    174 	bool Capabilities::CubeMap::DepthStencil::D32F_LOCKABLE = false;
    175 	bool Capabilities::CubeMap::DepthStencil::DF24 = false;
    176 	bool Capabilities::CubeMap::DepthStencil::DF16 = false;
    177 	bool Capabilities::CubeMap::DepthStencil::INTZ = false;
    178 
    179 	bool Capabilities::CubeMap::A8 = true;
    180 	bool Capabilities::CubeMap::R5G6B5 = true;
    181 	bool Capabilities::CubeMap::X1R5G5B5 = true;
    182 	bool Capabilities::CubeMap::A1R5G5B5 = true;
    183 	bool Capabilities::CubeMap::A4R4G4B4 = true;
    184 	bool Capabilities::CubeMap::R3G3B2 = true;
    185 	bool Capabilities::CubeMap::A8R3G3B2 = true;
    186 	bool Capabilities::CubeMap::X4R4G4B4 = true;
    187 	bool Capabilities::CubeMap::R8G8B8 = false;
    188 	bool Capabilities::CubeMap::X8R8G8B8 = true;
    189 	bool Capabilities::CubeMap::A8R8G8B8 = true;
    190 	bool Capabilities::CubeMap::X8B8G8R8 = true;
    191 	bool Capabilities::CubeMap::A8B8G8R8 = true;
    192 	bool Capabilities::CubeMap::P8 = false;
    193 	bool Capabilities::CubeMap::A8P8 = false;
    194 	bool Capabilities::CubeMap::G16R16 = true;
    195 	bool Capabilities::CubeMap::A2R10G10B10 = true;
    196 	bool Capabilities::CubeMap::A2B10G10R10 = true;
    197 	bool Capabilities::CubeMap::A16B16G16R16 = true;
    198 	bool Capabilities::CubeMap::DXT1 = S3TC_SUPPORT;
    199 	bool Capabilities::CubeMap::DXT2 = S3TC_SUPPORT;
    200 	bool Capabilities::CubeMap::DXT3 = S3TC_SUPPORT;
    201 	bool Capabilities::CubeMap::DXT4 = S3TC_SUPPORT;
    202 	bool Capabilities::CubeMap::DXT5 = S3TC_SUPPORT;
    203 	bool Capabilities::CubeMap::ATI1 = S3TC_SUPPORT;
    204 	bool Capabilities::CubeMap::ATI2 = S3TC_SUPPORT;
    205 	bool Capabilities::CubeMap::R16F = true;
    206 	bool Capabilities::CubeMap::G16R16F = true;
    207 	bool Capabilities::CubeMap::A16B16G16R16F = true;
    208 	bool Capabilities::CubeMap::R32F = true;
    209 	bool Capabilities::CubeMap::G32R32F = true;
    210 	bool Capabilities::CubeMap::A32B32G32R32F = true;
    211 	bool Capabilities::CubeMap::V8U8 = true;
    212 	bool Capabilities::CubeMap::L6V5U5 = true;
    213 	bool Capabilities::CubeMap::X8L8V8U8 = true;
    214 	bool Capabilities::CubeMap::Q8W8V8U8 = true;
    215 	bool Capabilities::CubeMap::V16U16 = true;
    216 	bool Capabilities::CubeMap::A2W10V10U10 = true;
    217 	bool Capabilities::CubeMap::Q16W16V16U16 = true;
    218 	bool Capabilities::CubeMap::L8 = true;
    219 	bool Capabilities::CubeMap::A4L4 = true;
    220 	bool Capabilities::CubeMap::L16 = true;
    221 	bool Capabilities::CubeMap::A8L8 = true;
    222 
    223 	bool Capabilities::VolumeTexture::A8 = true;
    224 	bool Capabilities::VolumeTexture::R5G6B5 = true;
    225 	bool Capabilities::VolumeTexture::X1R5G5B5 = true;
    226 	bool Capabilities::VolumeTexture::A1R5G5B5 = true;
    227 	bool Capabilities::VolumeTexture::A4R4G4B4 = true;
    228 	bool Capabilities::VolumeTexture::R3G3B2 = true;
    229 	bool Capabilities::VolumeTexture::A8R3G3B2 = true;
    230 	bool Capabilities::VolumeTexture::X4R4G4B4 = true;
    231 	bool Capabilities::VolumeTexture::R8G8B8 = false;
    232 	bool Capabilities::VolumeTexture::X8R8G8B8 = true;
    233 	bool Capabilities::VolumeTexture::A8R8G8B8 = true;
    234 	bool Capabilities::VolumeTexture::X8B8G8R8 = true;
    235 	bool Capabilities::VolumeTexture::A8B8G8R8 = true;
    236 	bool Capabilities::VolumeTexture::P8 = false;
    237 	bool Capabilities::VolumeTexture::A8P8 = false;
    238 	bool Capabilities::VolumeTexture::G16R16 = true;
    239 	bool Capabilities::VolumeTexture::A2R10G10B10 = true;
    240 	bool Capabilities::VolumeTexture::A2B10G10R10 = true;
    241 	bool Capabilities::VolumeTexture::A16B16G16R16 = true;
    242 	bool Capabilities::VolumeTexture::DXT1 = S3TC_SUPPORT;
    243 	bool Capabilities::VolumeTexture::DXT2 = S3TC_SUPPORT;
    244 	bool Capabilities::VolumeTexture::DXT3 = S3TC_SUPPORT;
    245 	bool Capabilities::VolumeTexture::DXT4 = S3TC_SUPPORT;
    246 	bool Capabilities::VolumeTexture::DXT5 = S3TC_SUPPORT;
    247 	bool Capabilities::VolumeTexture::ATI1 = S3TC_SUPPORT;
    248 	bool Capabilities::VolumeTexture::ATI2 = S3TC_SUPPORT;
    249 	bool Capabilities::VolumeTexture::R16F = true;
    250 	bool Capabilities::VolumeTexture::G16R16F = true;
    251 	bool Capabilities::VolumeTexture::A16B16G16R16F = true;
    252 	bool Capabilities::VolumeTexture::R32F = true;
    253 	bool Capabilities::VolumeTexture::G32R32F = true;
    254 	bool Capabilities::VolumeTexture::A32B32G32R32F = true;
    255 	bool Capabilities::VolumeTexture::V8U8 = true;
    256 	bool Capabilities::VolumeTexture::L6V5U5 = true;
    257 	bool Capabilities::VolumeTexture::X8L8V8U8 = true;
    258 	bool Capabilities::VolumeTexture::Q8W8V8U8 = true;
    259 	bool Capabilities::VolumeTexture::V16U16 = true;
    260 	bool Capabilities::VolumeTexture::A2W10V10U10 = true;
    261 	bool Capabilities::VolumeTexture::Q16W16V16U16 = true;
    262 	bool Capabilities::VolumeTexture::L8 = true;
    263 	bool Capabilities::VolumeTexture::A4L4 = true;
    264 	bool Capabilities::VolumeTexture::L16 = true;
    265 	bool Capabilities::VolumeTexture::A8L8 = true;
    266 
    267 	bool Capabilities::Texture::RenderTarget::NULL_ = true;
    268 	bool Capabilities::Texture::RenderTarget::R8G8B8 = false;
    269 	bool Capabilities::Texture::RenderTarget::R5G6B5 = true;
    270 	bool Capabilities::Texture::RenderTarget::X1R5G5B5 = true;
    271 	bool Capabilities::Texture::RenderTarget::A1R5G5B5 = true;
    272 	bool Capabilities::Texture::RenderTarget::A4R4G4B4 = true;
    273 	bool Capabilities::Texture::RenderTarget::R3G3B2 = false;
    274 	bool Capabilities::Texture::RenderTarget::A8R3G3B2 = false;
    275 	bool Capabilities::Texture::RenderTarget::X4R4G4B4 = true;
    276 	bool Capabilities::Texture::RenderTarget::A8R8G8B8 = true;
    277 	bool Capabilities::Texture::RenderTarget::X8R8G8B8 = true;
    278 	bool Capabilities::Texture::RenderTarget::A8B8G8R8 = true;
    279 	bool Capabilities::Texture::RenderTarget::X8B8G8R8 = true;
    280 	bool Capabilities::Texture::RenderTarget::G16R16 = true;
    281 	bool Capabilities::Texture::RenderTarget::A2B10G10R10 = true;
    282 	bool Capabilities::Texture::RenderTarget::A2R10G10B10 = true;
    283 	bool Capabilities::Texture::RenderTarget::A16B16G16R16 = true;
    284 	bool Capabilities::Texture::RenderTarget::R16F = true;
    285 	bool Capabilities::Texture::RenderTarget::G16R16F = true;
    286 	bool Capabilities::Texture::RenderTarget::A16B16G16R16F = true;
    287 	bool Capabilities::Texture::RenderTarget::R32F = true;
    288 	bool Capabilities::Texture::RenderTarget::G32R32F = true;
    289 	bool Capabilities::Texture::RenderTarget::A32B32G32R32F = true;
    290 
    291 	bool Capabilities::Texture::DepthStencil::D32 = true;
    292 	bool Capabilities::Texture::DepthStencil::D24S8 = true;
    293 	bool Capabilities::Texture::DepthStencil::D24X8 = true;
    294 	bool Capabilities::Texture::DepthStencil::D16 = true;
    295 	bool Capabilities::Texture::DepthStencil::D24FS8 = true;
    296 	bool Capabilities::Texture::DepthStencil::D32F_LOCKABLE = true;
    297 	bool Capabilities::Texture::DepthStencil::DF24 = true;
    298 	bool Capabilities::Texture::DepthStencil::DF16 = true;
    299 	bool Capabilities::Texture::DepthStencil::INTZ = true;
    300 
    301 	bool Capabilities::Texture::NULL_ = true;
    302 	bool Capabilities::Texture::A8 = true;
    303 	bool Capabilities::Texture::R5G6B5 = true;
    304 	bool Capabilities::Texture::X1R5G5B5 = true;
    305 	bool Capabilities::Texture::A1R5G5B5 = true;
    306 	bool Capabilities::Texture::A4R4G4B4 = true;
    307 	bool Capabilities::Texture::R3G3B2 = true;
    308 	bool Capabilities::Texture::A8R3G3B2 = true;
    309 	bool Capabilities::Texture::X4R4G4B4 = true;
    310 	bool Capabilities::Texture::R8G8B8 = false;
    311 	bool Capabilities::Texture::X8R8G8B8 = true;
    312 	bool Capabilities::Texture::A8R8G8B8 = true;
    313 	bool Capabilities::Texture::X8B8G8R8 = true;
    314 	bool Capabilities::Texture::A8B8G8R8 = true;
    315 	bool Capabilities::Texture::P8 = false;
    316 	bool Capabilities::Texture::A8P8 = false;
    317 	bool Capabilities::Texture::G16R16 = true;
    318 	bool Capabilities::Texture::A2R10G10B10 = true;
    319 	bool Capabilities::Texture::A2B10G10R10 = true;
    320 	bool Capabilities::Texture::A16B16G16R16 = true;
    321 	bool Capabilities::Texture::DXT1 = S3TC_SUPPORT;
    322 	bool Capabilities::Texture::DXT2 = S3TC_SUPPORT;
    323 	bool Capabilities::Texture::DXT3 = S3TC_SUPPORT;
    324 	bool Capabilities::Texture::DXT4 = S3TC_SUPPORT;
    325 	bool Capabilities::Texture::DXT5 = S3TC_SUPPORT;
    326 	bool Capabilities::Texture::ATI1 = S3TC_SUPPORT;
    327 	bool Capabilities::Texture::ATI2 = S3TC_SUPPORT;
    328 	bool Capabilities::Texture::R16F = true;
    329 	bool Capabilities::Texture::G16R16F = true;
    330 	bool Capabilities::Texture::A16B16G16R16F = true;
    331 	bool Capabilities::Texture::R32F = true;
    332 	bool Capabilities::Texture::G32R32F = true;
    333 	bool Capabilities::Texture::A32B32G32R32F = true;
    334 	bool Capabilities::Texture::V8U8 = true;
    335 	bool Capabilities::Texture::L6V5U5 = true;
    336 	bool Capabilities::Texture::X8L8V8U8 = true;
    337 	bool Capabilities::Texture::Q8W8V8U8 = true;
    338 	bool Capabilities::Texture::V16U16 = true;
    339 	bool Capabilities::Texture::A2W10V10U10 = true;
    340 	bool Capabilities::Texture::Q16W16V16U16 = true;
    341 	bool Capabilities::Texture::L8 = true;
    342 	bool Capabilities::Texture::A4L4 = true;
    343 	bool Capabilities::Texture::L16 = true;
    344 	bool Capabilities::Texture::A8L8 = true;
    345 	bool Capabilities::Texture::D32 = true;
    346 	bool Capabilities::Texture::D24S8 = true;
    347 	bool Capabilities::Texture::D24X8 = true;
    348 	bool Capabilities::Texture::D16 = true;
    349 	bool Capabilities::Texture::D24FS8 = true;
    350 	bool Capabilities::Texture::D32F_LOCKABLE = true;
    351 	bool Capabilities::Texture::DF24 = true;
    352 	bool Capabilities::Texture::DF16 = true;
    353 	bool Capabilities::Texture::INTZ = true;
    354 
    355 	bool Capabilities::isSRGBreadable(D3DFORMAT format)
    356 	{
    357 		// Keep in sync with Surface::isSRGBreadable
    358 		switch(format)
    359 		{
    360 		case D3DFMT_L8:
    361 		case D3DFMT_A8L8:
    362 		case D3DFMT_R8G8B8:
    363 		case D3DFMT_A8R8G8B8:
    364 		case D3DFMT_X8R8G8B8:
    365 		case D3DFMT_A8B8G8R8:
    366 		case D3DFMT_X8B8G8R8:
    367 		case D3DFMT_R5G6B5:
    368 		case D3DFMT_X1R5G5B5:
    369 		case D3DFMT_A1R5G5B5:
    370 		case D3DFMT_A4R4G4B4:
    371 		case D3DFMT_DXT1:
    372 		case D3DFMT_DXT2:
    373 		case D3DFMT_DXT3:
    374 		case D3DFMT_DXT4:
    375 		case D3DFMT_DXT5:
    376 		case D3DFMT_ATI1:
    377 		case D3DFMT_ATI2:
    378 			return true;
    379 		default:
    380 			return false;
    381 		}
    382 
    383 		return false;
    384 	}
    385 
    386 	bool Capabilities::isSRGBwritable(D3DFORMAT format)
    387 	{
    388 		// Keep in sync with Surface::isSRGBwritable
    389 		switch(format)
    390 		{
    391 		case D3DFMT_NULL:
    392 		case D3DFMT_A8R8G8B8:
    393 		case D3DFMT_X8R8G8B8:
    394 		case D3DFMT_A8B8G8R8:
    395 		case D3DFMT_X8B8G8R8:
    396 		case D3DFMT_R5G6B5:
    397 			return true;
    398 		default:
    399 			return false;
    400 		}
    401 	}
    402 
    403 	unsigned int pixelShaderVersionX = D3DPS_VERSION(3, 0);
    404 	unsigned int vertexShaderVersionX = D3DVS_VERSION(3, 0);
    405 
    406 	unsigned long pixelShaderArbitrarySwizzle = D3DPS20CAPS_ARBITRARYSWIZZLE;
    407 	unsigned long pixelShaderGradientInstructions = D3DPS20CAPS_GRADIENTINSTRUCTIONS;
    408 	unsigned long pixelShaderPredication = D3DPS20CAPS_PREDICATION;
    409 	unsigned long pixelShaderNoDependentReadLimit = D3DPS20CAPS_NODEPENDENTREADLIMIT;
    410 	unsigned long pixelShaderNoTexInstructionLimit = D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT;
    411 
    412 	unsigned long pixelShaderDynamicFlowControlDepth = D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH;
    413 	unsigned long pixelShaderStaticFlowControlDepth = D3DPS20_MAX_STATICFLOWCONTROLDEPTH;
    414 
    415 	unsigned long vertexShaderPredication = D3DVS20CAPS_PREDICATION;
    416 	unsigned long vertexShaderDynamicFlowControlDepth = D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH;
    417 
    418 	unsigned int textureMemory = 256 * 1024 * 1024;
    419 	unsigned int maxAnisotropy = 16;
    420 }
    421