   Specific hardware issue
  Hi. I'm working on a visual novel maker called Novelty (www.visualnovelty.com)and I've run into a very specific problem that I need some help with.Some of my users have experienced a bug where images (regular textured quads) won't render properly.The curious thing is that they are all running on the same graphics accelerator: VIA/S3G UniChrome Pro.This bug seems to only occur with this specific chipset.This is how the bug appearsHow it's supposed to lookWhat puzzles me is that the initialization of DirectX hasn't failed in the first place. Some elements, such as the UI controls, are being rendered. Granted, they are all texture-less, but I somehow doubt the chip wouldn't support textures. The code for rendering the quads is as vanilla as can be and I can't imagine what would cause this. It's not like I'm trying to do anything fancy and it works perfectly on all other hardware.Does anyone have any experience with this particular piece of hardware or have any hint of what its issue could be?PS. While my users were googling that card they discovered it was on Blizzard's list of unsupported hardware for WoW. Need I make this the first on a similar list of my own?FVF:typedef struct {float x;float y;float z;D3DCOLOR color;float u;float v;float maskU;float maskV;} TLVERTEX2D;const DWORD D3DFVF_TLVERTEX2D = D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX2;Render code:void scGeometry::Draw(){if (!m_pVertexBuffer || !m_pDevice || m_Vertices.size() < 3 || m_Mode == SC_GEO_UNKNOWN)return;m_pDevice->SetFVF(D3DFVF_TLVERTEX2D);m_pDevice->SetStreamSource(0, m_pVertexBuffer, 0, sizeof(TLVERTEX2D));switch (m_Mode){case SC_GEO_TRIFAN:m_pDevice->DrawPrimitive(D3DPT_TRIANGLEFAN, 0, m_Vertices.size() - 2 );break;case SC_GEO_TRILIST:m_pDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0, m_Vertices.size() / 3 );break;case SC_GEO_TRISTRIP:m_pDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, m_Vertices.size() - 2 );break;}}
  If you only have issues with one specific GPU, then a driver bug is likely.  Try running your app with the reference rasterizer and debug runtimes enabled...if everything works okay then it's the driver that's at fault.  Then you can try and work around it (if you feel it's worth supporting that GPU).   ;Quote:Original post by MJPIf you only have issues with one specific GPU, then a driver bug is likely.  Try running your app with the reference rasterizer and debug runtimes enabled...if everything works okay then it's the driver that's at fault.  Then you can try and work around it (if you feel it's worth supporting that GPU).Do what MJP says FIRST.Second, from my experience with missing polygons with old video cards, this usually happens because:1) The texture format is not supported (i.e. ARGB8888 RGB565, BGRA8888, etc)2) The texture resolution is not a power of 2 (i.e. 128, 256, 512) and the card doesn't support it3) The texture resolution is not squared (i.e. 64x64 instead of 64x32) and the card doesn't support non-squared textures.4) The texture resolution is too big. (i.e. it supports up to 1024x1024, and your image is 2048x2048)5) You've ran out of video memory.Note that some crappy drivers report they support more than they actually do (they "lie", like the SiS 620). I.e. They could be claiming to support non-power-of-2 textures, when they actually don't.CheersDark SylincEdit: May be the card has problems with the D3DFVF_TEX2 field. Who knows...Edit2: Ah! Forgot to mention:Some cards (like the GeForce MX 4000) will report that they support non-squared and non-power-of-2 textures, and it's true.However, some very strange (usually not even) resolutions still will fail. Very odd to encounter such strange resolution (even weirder a game developer using such resolution in the first place) but it may happen.This is a known issue that affects many GPUs from that era. And we all had to deal with it.[Edited by - Matias Goldberg on May 26, 2009 2:37:36 PM]