The online racing simulator
Software Vertex Shader support
I want to know if you could enable software vertex shader support if you haven't already. This might increase FPS for us without Hardware Vertex Shader support but with a fairly new processor.

Intel has a guide for their chipsets here:
http://www3.intel.com/cd/ids/d ... /recent/334680.htm?page=7
Paste from that page:

DWORD SetVertexProcessingMode( LPDIRECT3D9 pD3D ) { DWORD vertexprocessingmode; // vertex processing mode D3DCAPS9 caps; // Device CAPs structure D3DADAPTER_IDENTIFIER9 adapterID; // Used to store device info // Retrieve device capabilities if( g_pD3D->GetDeviceCaps( 0, D3DDEVTYPE_HAL, &caps ) != D3D_OK ) { return E_FAIL; // exit if reading caps fails... } // Check if hardware T&L is supported... // - The D3DDEVCAPS_HWTRANSFORMANDLIGHT capability should // be enabled for GMA X3000 if ( ( caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT ) != 0 ) { vertexprocessingmode = D3DCREATE_HARDWARE_VERTEXPROCESSING; } else { // Check vendor and device ID and enable software vertex // processing for Intel(R) Graphics... // Gather the primary adapter's information... if( g_pD3D->GetAdapterIdentifier(0,0,&adapterID ) != D3D_OK ) { return E_FAIL; } if ( ( adapterID.VendorId == 0x8086 ) && // Intel Architecture ( adapterID.DeviceId == 0x2A02 ) || // GM965 Device 0 ( adapterID.DeviceId == 0x2A03 ) || // GM965 Device 1 ( adapterID.DeviceId == 0x29A2 ) || // G965 Device 0 ( adapterID.DeviceId == 0x29A3 ) || // G965 Device 1 ( adapterID.DeviceId == 0x27A2 ) || // 945GM Device 0 ( adapterID.DeviceId == 0x27A6 ) || // 945GM Device 1 ( adapterID.DeviceId == 0x2772 ) || // 945G Device 0 ( adapterID.DeviceId == 0x2776 ) || // 945G Device 1 ( adapterID.DeviceId == 0x2592 ) || // 915GM Device 0 ( adapterID.DeviceId == 0x2792 ) || // 915GM Device 1 ( adapterID.DeviceId == 0x2582 ) || // 915G Device 0 ( adapterID.DeviceId == 0x2782 ) || // 915G Device 1 { vertexprocessingmode = D3DCREATE_SOFTWARE_VERTEXPROCESSING; } else { // Chipset does not meet minimum requirements... return E_MINSPEC; } } return vertexprocessingmode; }

Hi. Yes, I just checked the code to make sure it's the same, and LFS does already check the flag D3DDEVCAPS_HWTRANSFORMANDLIGHT and if it's not available, it sets the mode to D3DCREATE_SOFTWARE_VERTEXPROCESSING.

If the card can do it, then software vertex processing is still selectable in graphics options. Though I don't know why anyone would select that if they have the option.

I've just added a nice flashing red warning to let people know that HVS is not selected, if their card supports it. It does happen sometimes that people think that HVS must be some fancy effect that will slow down their graphics, and they don't realise it is the key to high frame rates... so that new warning is needed. The other way that it can end up wrongly not selected is if people upgrade their graphics card but leave the old setting.
Is there any discernable difference in visuals with the two options? I can handle it either way easily with my rig, but I'll go for the higher fps option if it looks the same, or better
hardware is always better
I think it looks the same but software is just very slow, because every vertex and triangle is downloaded to the card, every frame.
That makes it double slow because now it's dragging that on top of the already used up interface, and on a system with onboard graphics, where the fill rate sucks like a warp driven vaccum cleaner, that means really low frame rates. My laptop can attest to that, with the highest CPU usage being 47% with LFS (1ms sleep so can it) even with ALL the graphics options turned down.

Funny story about that, my laptop's GPU (ATi IGP 320m, or Radeon Mobility U1) has a fill rate that is half that of a PCI graphics card (GeForce 2 MX of all things), even though it uses the AGP 4X interface, it's onboard, so it sucks.
Cheers Scawen, you have done it as you should as usual

FGED GREDG RDFGDR GSFDG