annotate src/windows/native/sun/java2d/d3d/D3DBadHardware.h @ 8962:c8c4aef922ff

8029628: Many graphic artifacts Reviewed-by: prr, bae
author vadim
date Fri, 13 Dec 2013 11:49:26 +0400
parents 8a59181b3c6d
children 1a3de3cdc684
rev   line source
tdv@430 1 /*
ohair@2362 2 * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved.
tdv@430 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
tdv@430 4 *
tdv@430 5 * This code is free software; you can redistribute it and/or modify it
tdv@430 6 * under the terms of the GNU General Public License version 2 only, as
ohair@2362 7 * published by the Free Software Foundation. Oracle designates this
tdv@430 8 * particular file as subject to the "Classpath" exception as provided
ohair@2362 9 * by Oracle in the LICENSE file that accompanied this code.
tdv@430 10 *
tdv@430 11 * This code is distributed in the hope that it will be useful, but WITHOUT
tdv@430 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
tdv@430 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
tdv@430 14 * version 2 for more details (a copy is included in the LICENSE file that
tdv@430 15 * accompanied this code).
tdv@430 16 *
tdv@430 17 * You should have received a copy of the GNU General Public License version
tdv@430 18 * 2 along with this work; if not, write to the Free Software Foundation,
tdv@430 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
tdv@430 20 *
ohair@2362 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
ohair@2362 22 * or visit www.oracle.com if you need additional information or have any
ohair@2362 23 * questions.
tdv@430 24 */
tdv@430 25
tdv@430 26 #ifndef D3DBADHARDWARE_H
tdv@430 27 #define D3DBADHARDWARE_H
tdv@430 28
tdv@430 29 #include "D3DPipeline.h"
tdv@430 30 #include "D3DPipelineManager.h"
tdv@430 31
tdv@430 32 typedef struct ADAPTER_INFO {
tdv@430 33 DWORD VendorId;
tdv@430 34 DWORD DeviceId;
tdv@430 35 LONGLONG DriverVersion; // minimum driver version to pass, or NO_VERSION
tdv@430 36 USHORT OsInfo; // OSes where the DriverVersion is relevant or, OS_ALL
tdv@430 37 } ADAPTER_INFO;
tdv@430 38
tdv@430 39 // this DeviceId means that all vendor boards are to be excluded
tdv@430 40 #define ALL_DEVICEIDS (0xffffffff)
tdv@430 41
tdv@430 42 #define D_VERSION(H1, H2, L1, L2) \
tdv@430 43 (((LONGLONG)((H1 << 16) | H2) << 32) | ((L1 << 16) | (L2)))
tdv@430 44
tdv@430 45 // this driver version is used to pass the driver version check
tdv@430 46 // as it is always greater than any driver version
tdv@430 47 #define MAX_VERSION D_VERSION(0x7fff, 0x7fff, 0x7fff, 0x7fff)
tdv@430 48 // this DriverVersion means that the version of the driver doesn't matter,
tdv@430 49 // all versions must fail ("there's no version of the driver that passes")
tdv@430 50 #define NO_VERSION D_VERSION(0xffff, 0xffff, 0xffff, 0xffff)
tdv@430 51
tdv@430 52 static const ADAPTER_INFO badHardware[] = {
tdv@430 53
vadim@7072 54 // Intel HD
vadim@7072 55 // Clarkdale (Desktop) GMA HD Lines
vadim@8962 56 { 0x8086, 0x0042, NO_VERSION, OS_ALL },
vadim@7072 57 // Arrandale (Mobile) GMA HD Lines
vadim@8962 58 { 0x8086, 0x0046, NO_VERSION, OS_ALL },
vadim@8512 59
vadim@8512 60 // Sandy Bridge HD Graphics 3000/2000
vadim@8962 61 { 0x8086, 0x0102, NO_VERSION, OS_ALL },
vadim@8962 62 { 0x8086, 0x0106, NO_VERSION, OS_ALL },
vadim@8962 63 { 0x8086, 0x0112, NO_VERSION, OS_ALL },
vadim@8962 64 { 0x8086, 0x0116, NO_VERSION, OS_ALL },
vadim@8962 65 { 0x8086, 0x0122, NO_VERSION, OS_ALL },
vadim@8962 66 { 0x8086, 0x0126, NO_VERSION, OS_ALL },
vadim@8962 67 { 0x8086, 0x010A, NO_VERSION, OS_ALL },
vadim@8512 68
vadim@8512 69 // Ivy Bridge
vadim@8512 70 { 0x8086, 0x0162, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 71 { 0x8086, 0x0162, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 72 { 0x8086, 0x0166, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 73 { 0x8086, 0x0166, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 74 { 0x8086, 0x016A, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 75 { 0x8086, 0x016A, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 76 { 0x8086, 0x0152, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 77 { 0x8086, 0x0152, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 78 { 0x8086, 0x0156, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 79 { 0x8086, 0x0156, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 80 { 0x8086, 0x015A, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 81 { 0x8086, 0x015A, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 82
vadim@8512 83 // Haswell
vadim@8512 84 { 0x8086, 0x0402, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 85 { 0x8086, 0x0402, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 86 { 0x8086, 0x0406, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 87 { 0x8086, 0x0406, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 88 { 0x8086, 0x0412, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 89 { 0x8086, 0x0412, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 90 { 0x8086, 0x0416, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 91 { 0x8086, 0x0416, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 92 { 0x8086, 0x041E, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 93 { 0x8086, 0x041E, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 94 { 0x8086, 0x040A, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 95 { 0x8086, 0x040A, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 96 { 0x8086, 0x041A, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 97 { 0x8086, 0x041A, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 98 { 0x8086, 0x0A06, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 99 { 0x8086, 0x0A06, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 100 { 0x8086, 0x0A16, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 101 { 0x8086, 0x0A16, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 102 { 0x8086, 0x0A26, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 103 { 0x8086, 0x0A26, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 104 { 0x8086, 0x0A2E, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 105 { 0x8086, 0x0A2E, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 106 { 0x8086, 0x0A1E, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 107 { 0x8086, 0x0A1E, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 108 { 0x8086, 0x0A0E, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 109 { 0x8086, 0x0A0E, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 110 { 0x8086, 0x0D26, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 111 { 0x8086, 0x0D26, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@8512 112 { 0x8086, 0x0D22, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 },
vadim@8512 113 { 0x8086, 0x0D22, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 },
vadim@7072 114
vadim@7072 115 // Reason: workaround for 6620073, 6612195
vadim@7072 116 // Intel 740
vadim@7072 117 { 0x8086, 0x7800, NO_VERSION, OS_ALL },
vadim@7072 118 { 0x8086, 0x1240, NO_VERSION, OS_ALL },
vadim@7072 119 { 0x8086, 0x7121, NO_VERSION, OS_ALL },
vadim@7072 120 { 0x8086, 0x7123, NO_VERSION, OS_ALL },
vadim@7072 121 { 0x8086, 0x7125, NO_VERSION, OS_ALL },
vadim@7072 122 { 0x8086, 0x1132, NO_VERSION, OS_ALL },
vadim@7072 123 // IEG
vadim@7072 124 { 0x8086, 0x2562, NO_VERSION, OS_ALL },
vadim@7072 125 { 0x8086, 0x3577, NO_VERSION, OS_ALL },
vadim@7072 126 { 0x8086, 0x2572, NO_VERSION, OS_ALL },
vadim@7072 127 { 0x8086, 0x3582, NO_VERSION, OS_ALL },
vadim@7072 128 { 0x8086, 0x358E, NO_VERSION, OS_ALL },
vadim@7072 129 // GMA
vadim@7072 130 { 0x8086, 0x2582, NO_VERSION, OS_ALL },
vadim@7072 131 { 0x8086, 0x2782, NO_VERSION, OS_ALL },
vadim@7072 132 { 0x8086, 0x2592, NO_VERSION, OS_ALL },
vadim@7072 133 { 0x8086, 0x2792, NO_VERSION, OS_ALL },
vadim@7072 134 { 0x8086, 0x2772, NO_VERSION, OS_ALL },
vadim@7072 135 { 0x8086, 0x2776, NO_VERSION, OS_ALL },
vadim@7072 136 { 0x8086, 0x27A2, NO_VERSION, OS_ALL },
vadim@7072 137 { 0x8086, 0x27A6, NO_VERSION, OS_ALL },
vadim@7072 138 { 0x8086, 0x27AE, NO_VERSION, OS_ALL },
vadim@7072 139 { 0x8086, 0x29D2, NO_VERSION, OS_ALL },
vadim@7072 140 { 0x8086, 0x29D3, NO_VERSION, OS_ALL },
vadim@7072 141 { 0x8086, 0x29B2, NO_VERSION, OS_ALL },
vadim@7072 142 { 0x8086, 0x29B3, NO_VERSION, OS_ALL },
vadim@7072 143 { 0x8086, 0x29C2, NO_VERSION, OS_ALL },
vadim@7072 144 { 0x8086, 0x29C3, NO_VERSION, OS_ALL },
vadim@7072 145 { 0x8086, 0xA001, NO_VERSION, OS_ALL },
vadim@7072 146 { 0x8086, 0xA002, NO_VERSION, OS_ALL },
vadim@7072 147 { 0x8086, 0xA011, NO_VERSION, OS_ALL },
vadim@7072 148 { 0x8086, 0xA012, NO_VERSION, OS_ALL },
vadim@7072 149 // GMA
vadim@7072 150 { 0x8086, 0x2972, NO_VERSION, OS_ALL },
vadim@7072 151 { 0x8086, 0x2973, NO_VERSION, OS_ALL },
vadim@7072 152 { 0x8086, 0x2992, NO_VERSION, OS_ALL },
vadim@7072 153 { 0x8086, 0x2993, NO_VERSION, OS_ALL },
vadim@7072 154 { 0x8086, 0x29A2, NO_VERSION, OS_ALL },
vadim@7072 155 { 0x8086, 0x29A3, NO_VERSION, OS_ALL },
vadim@7072 156 { 0x8086, 0x2982, NO_VERSION, OS_ALL },
vadim@7072 157 { 0x8086, 0x2983, NO_VERSION, OS_ALL },
vadim@7072 158 { 0x8086, 0x2A02, NO_VERSION, OS_ALL },
vadim@7072 159 { 0x8086, 0x2A03, NO_VERSION, OS_ALL },
vadim@7072 160 { 0x8086, 0x2A12, NO_VERSION, OS_ALL },
vadim@7072 161 { 0x8086, 0x2A13, NO_VERSION, OS_ALL },
vadim@7072 162
vadim@7072 163 // Eaglelake (Desktop) GMA 4500 Lines
vadim@8962 164 { 0x8086, 0x2E42, NO_VERSION, OS_ALL },
vadim@8962 165 { 0x8086, 0x2E43, NO_VERSION, OS_ALL },
vadim@8962 166 { 0x8086, 0x2E92, NO_VERSION, OS_ALL },
vadim@8962 167 { 0x8086, 0x2E93, NO_VERSION, OS_ALL },
vadim@8962 168 { 0x8086, 0x2E12, NO_VERSION, OS_ALL },
vadim@8962 169 { 0x8086, 0x2E13, NO_VERSION, OS_ALL },
vadim@7072 170 // Eaglelake (Desktop) GMA X4500 Lines
vadim@8962 171 { 0x8086, 0x2E32, NO_VERSION, OS_ALL },
vadim@8962 172 { 0x8086, 0x2E33, NO_VERSION, OS_ALL },
vadim@8962 173 { 0x8086, 0x2E22, NO_VERSION, OS_ALL },
vadim@7072 174 // Eaglelake (Desktop) GMA X4500HD Lines
vadim@8962 175 { 0x8086, 0x2E23, NO_VERSION, OS_ALL },
vadim@7072 176 // Cantiga (Mobile) GMA 4500MHD Lines
vadim@8962 177 { 0x8086, 0x2A42, NO_VERSION, OS_ALL },
vadim@8962 178 { 0x8086, 0x2A43, NO_VERSION, OS_ALL },
tdv@430 179
tdv@430 180 // ATI Mobility Radeon X1600, X1400, X1450, X1300, X1350
tdv@430 181 // Reason: workaround for 6613066, 6687166
tdv@430 182 // X1300 (four sub ids)
tdv@430 183 { 0x1002, 0x714A, D_VERSION(6,14,10,6706), OS_WINXP },
tdv@430 184 { 0x1002, 0x714A, D_VERSION(7,14,10,0567), OS_VISTA },
tdv@430 185 { 0x1002, 0x7149, D_VERSION(6,14,10,6706), OS_WINXP },
tdv@430 186 { 0x1002, 0x7149, D_VERSION(7,14,10,0567), OS_VISTA },
tdv@430 187 { 0x1002, 0x714B, D_VERSION(6,14,10,6706), OS_WINXP },
tdv@430 188 { 0x1002, 0x714B, D_VERSION(7,14,10,0567), OS_VISTA },
tdv@430 189 { 0x1002, 0x714C, D_VERSION(6,14,10,6706), OS_WINXP },
tdv@430 190 { 0x1002, 0x714C, D_VERSION(7,14,10,0567), OS_VISTA },
tdv@430 191 // X1350 (three sub ids)
tdv@430 192 { 0x1002, 0x718B, D_VERSION(6,14,10,6706), OS_WINXP },
tdv@430 193 { 0x1002, 0x718B, D_VERSION(7,14,10,0567), OS_VISTA },
tdv@430 194 { 0x1002, 0x718C, D_VERSION(6,14,10,6706), OS_WINXP },
tdv@430 195 { 0x1002, 0x718C, D_VERSION(7,14,10,0567), OS_VISTA },
tdv@430 196 { 0x1002, 0x7196, D_VERSION(6,14,10,6706), OS_WINXP },
tdv@430 197 { 0x1002, 0x7196, D_VERSION(7,14,10,0567), OS_VISTA },
tdv@430 198 // X1400
tdv@430 199 { 0x1002, 0x7145, D_VERSION(6,14,10,6706), OS_WINXP },
tdv@430 200 { 0x1002, 0x7145, D_VERSION(7,14,10,0567), OS_VISTA },
tdv@430 201 // X1450 (two sub ids)
tdv@430 202 { 0x1002, 0x7186, D_VERSION(6,14,10,6706), OS_WINXP },
tdv@430 203 { 0x1002, 0x7186, D_VERSION(7,14,10,0567), OS_VISTA },
tdv@430 204 { 0x1002, 0x718D, D_VERSION(6,14,10,6706), OS_WINXP },
tdv@430 205 { 0x1002, 0x718D, D_VERSION(7,14,10,0567), OS_VISTA },
tdv@430 206 // X1600
tdv@430 207 { 0x1002, 0x71C5, D_VERSION(6,14,10,6706), OS_WINXP },
tdv@430 208 { 0x1002, 0x71C5, D_VERSION(7,14,10,0567), OS_VISTA },
tdv@430 209
tdv@777 210 // ATI Mobility Radeon 9700
tdv@777 211 // Reason: workaround for 6773336
tdv@777 212 { 0x1002, 0x4E50, D_VERSION(6,14,10,6561), OS_WINXP },
tdv@777 213
tdv@754 214 // Nvidia FX 5200
tdv@754 215 // Reason: workaround for 6717988
tdv@754 216 { 0x10DE, 0x0322, D_VERSION(6,14,11,6921), OS_WINXP },
tdv@754 217
tdv@754 218 // Nvidia FX Go5600, Go5700
tdv@754 219 // Reason: workaround for 6714579
tdv@754 220 { 0x10DE, 0x031A, D_VERSION(6,14,11,6921), OS_WINXP },
tdv@754 221 { 0x10DE, 0x0347, D_VERSION(6,14,11,6921), OS_WINXP },
tdv@754 222
tdv@430 223 // Nvidia Quadro NVS 110M
tdv@430 224 // Reason: workaround for 6629891
tdv@430 225 { 0x10DE, 0x01D7, D_VERSION(6,14,11,5665), OS_WINXP },
tdv@430 226
tdv@430 227 // Nvidia Quadro PCI-E series
tdv@430 228 // Reason: workaround for 6653860
tdv@430 229 { 0x10DE, 0x00FD, D_VERSION(6,14,10,6573), OS_WINXP },
tdv@430 230
tdv@777 231 // Nvidia Quadro FX family
tdv@777 232 // Reason: workaround for 6772137
tdv@777 233 { 0x10DE, 0x00F8, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 234 { 0x10DE, 0x009D, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 235 { 0x10DE, 0x029C, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 236 { 0x10DE, 0x029D, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 237 { 0x10DE, 0x029E, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 238 { 0x10DE, 0x029F, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 239 { 0x10DE, 0x01DE, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 240 { 0x10DE, 0x039E, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 241 { 0x10DE, 0x019D, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 242 { 0x10DE, 0x019E, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 243 { 0x10DE, 0x040A, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 244 { 0x10DE, 0x040E, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 245 { 0x10DE, 0x040F, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 246 { 0x10DE, 0x061A, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 247 { 0x10DE, 0x06F9, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 248 { 0x10DE, 0x05FD, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 249 { 0x10DE, 0x05FE, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 250 { 0x10DE, 0x004E, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 251 { 0x10DE, 0x00CD, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 252 { 0x10DE, 0x00CE, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 253 { 0x10DE, 0x014C, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 254 { 0x10DE, 0x014D, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 255 { 0x10DE, 0x014E, D_VERSION(6,14,10,9381), OS_WINXP },
tdv@777 256
tdv@430 257 // Nvidia GeForce 6200 TurboCache(TM)
tdv@430 258 // Reason: workaround for 6588384
tdv@430 259 { 0x10DE, 0x0161, NO_VERSION, OS_VISTA },
tdv@430 260
tdv@430 261 // any Matrox board
tdv@430 262 // Reason: there are no known Matrox boards with proper Direct3D support
tdv@430 263 { 0x102B, ALL_DEVICEIDS, NO_VERSION, OS_ALL },
tdv@430 264
tdv@430 265 // any SiS board
tdv@430 266 // Reason: there aren't many PS2.0-capable SiS boards and they weren't
tdv@430 267 // tested
tdv@430 268 { 0x1039, ALL_DEVICEIDS, NO_VERSION, OS_ALL },
tdv@430 269
tdv@430 270 // any S3 board
tdv@430 271 // Reason: no available S3 Chrome (the only S3 boards with PS2.0 support)
tdv@430 272 // for testing
tdv@430 273 { 0x5333, ALL_DEVICEIDS, NO_VERSION, OS_ALL },
tdv@430 274
tdv@430 275 // any S3 board (in VIA motherboards)
tdv@430 276 // Reason: These are S3 chips in VIA motherboards
tdv@430 277 { 0x1106, ALL_DEVICEIDS, NO_VERSION, OS_ALL },
tdv@430 278
tdv@430 279 // last record must be empty
tdv@430 280 { 0x0000, 0x0000, NO_VERSION, OS_ALL }
tdv@430 281 };
tdv@430 282
tdv@430 283 #endif // D3DBADHARDWARE_H