failed to lock vertex buffer CMeshDX8::LockVertexBuffer



was playing the game for about. 8 hours. game crashed with that error. now everytime i try to play again.. it loads up .. goes the the Blank "Loading" menu screen. and then crashs's with that error

AMD 3200+ 64BIT
1GB Ram
Radeon 9800 Pro
DirectX 9c

Any ideas?


Same problem

AAAAAAAAAAAAargh, i'm having the same problem, but its always happened for me. I called VU support, but after waiting all day to get through the guy on the line was absolutely no help at ALL. I even tried changing video cards, but no go. Uninstall steam and HL2, reinstall, no go. Its really pissing me off that I cant even get the game to run, and tech support is worthless..



the same...i had this shit before in cs:source, but there it could solved with the dxlevel changing comand...however in hl2 it cannot be fixed in this way....i've changed dx level for 7.0 and it worked for a while, but now it still crashes to god damn windows with this annoying error...its odd because how it can be a dx8 problem when i'm using a dx7 crap...i cant believe how valve could release such underdone game after 6 years...fu v


Hi I had the same error with hammer when I try to activate the option "3d polygon textured",the only solution that I find was to switch my desktop settings in 16 bit. No problem since I have done it.... :rolleyes:

Try it and tell me :p
(by the way ,you have an ati like me?)



Same error here, started happening after the patch.

My system:
Processor: P4 3.2CGHz 800Mhz 478P/512K HT
Operating System: Windows Xp Pro
RAM:Corsair XMS 1GB PC3200 TWINX
Video:eVGA GeForce FX 5900, 128MB
Storage: WD Raptor 36GB 10,000 8MB
Audio: Audigy 2 ZS Platinum


Same problem here ever since I bought it. Never goes beyond Loading screen. Tried older drivers - got BSOD or same error. Throttling to dx7 level gets me to the start menu, but... heck, it crashes eventually anyways...

P4 1.7GHz
Nvidia GeForce Ti 4200
SoundBlaster Live!


I had that problem
My video card: ATI 9600
I unistalled all the drivers (catalyst 4.11) and reinstalled the basic latest driver (without catalyst)... it solved it for me..try it
no more memory error, games runs smoth :bonce:


got the same problem.... just bought Half-Life2 and tried to run it on my brandnew laptop computer (NEC PC-LR500AD, Pentium 1.4 MHz, ATI RADEON 9700).
First got message that I have to update the video driver (checking on ATI's website, there seems to be an update... but I cannot install it.... & NEC tells me there is no update on their side).
So, this was no solution yet.
When Half LIfe2 is loading, when the word 'loading' appears... it blocks/freezes and gives me following error message '"engine error : failed to lock vertex buffer in CmeshDX8::LockVertexBuffer"'....

Contacting Valve technical support... they bluntly tell me that it is because I have a DVD writer on my laptop... ?"#$%&' (meaning that HL2 could not be played on most of the new laptops available now????)... what a crap....

Still looking for a solution! HL2 in the box only would not be nice ==> want to play it!


quick and dirty

hi guys, I have the prob on my XERON notebook with ATI Mobility 9700. On my Desktop PC I have a working installation of Counterstrike Source. The game I want to play on my notebook too.
So, before i want to play cs:s on my notebook i just overwrite the files in ./SteamApps/namexxx/counter-strike source/bin/
with a backupcopy from the working Desktop-PC. And I can play the game :)
However, there are ~ 43 files that will be overwritten with the old ones. Somebody can go further and do testing, about what file is it that causes the problem. I hope this will help you too :smoking:


Party Escort Bot
Oct 20, 2004
Reaction score
Well, the problem is that this thread is over a year old and they all already left this forum.



I had this problem too.
I realised that if I del file ..\valve\steamApps\myUser\counter-strike source\bin\vidcfg.bin then I could play again. Then I made a file.bat whit the next instruccions:
del "C:\File Programs\Valve\Steam\SteamApps\myUser\counter-strike source\bin\vidcfg.bin";
"C:\File Programs\Valve\Steam\Steam.exe" -applaunch 240;

Then I execute this .bat and I can play CS:S!!

I hope you will solve the problem like me!




Had This Problem "Engine Error

failed to lock vertex buffer in CMeshDX8::LockVertexBuffer"

Just thought I would let you know that Its no longer a problem. TY to "bonshoms Scanner" that piece of advice works I quote "I had this problem too.
I realised that if I del file ..\valve\steamApps\myUser\counter-strike source\bin\vidcfg.bin then I could play again. Then I made a file.bat whit the next instruccions:
del "C:\File Programs\Valve\Steam\SteamApps\myUser\counter-strike source\bin\vidcfg.bin";
"C:\File Programs\Valve\Steam\Steam.exe" -applaunch 240" Unquote

So once again thx BTW It also works with "Sin Episodes Emergence"

Later.... Rickpz1


im having that prob but with half life 2 not with cs i need to know what to do for hl2


my pc
XPS 400
VC:Nvidia geforce 7300 LE
Pentium D
2.80 GHz
1 GB of RAM
Windows XP Media Center edition


I've had this issue since I bought this damn thing August 1, 2006.

I have an nVidia 7500LE with 1GB of RAM, an AMD 64 Live dual core processor, and Windows XP Media Center Edition.

I've tried numerous fixes for this, and none seem to work. For now, I'm chocking it up to the 7500LE, I think it may be faulty, or the card itself may be restricted in the area. As far as I can tell, nVidia doesn't even have this card on it's website, so perhaps they don't endorse it's use.

I'm saving for a new card, I'm going to snag a 7300GT within the next few days, and I'll see what happens and report back to you all.




Okay, sorry, double post, necromance, etc.

But, I fixed my issue. The problem was the card I had did not have enough Vertex Pipelines, therefore, since DX8 is rendered Hardware side, unlike DX9 (which is software) it could not lock the buffers.

Only way to fix it for me was to get a new card. I recommend nVidias that have the second digit higher than or equal to 6 (i.e. 6600, 6800, 7600, 7800, 7900, etc.)

Not sure about ATI cards, google comparison charts to find out more. Hope this helps guys.



i found the file and i know how to delete it but how do i create a .bin that does that?

the .bin i have runs with a cd/dvd burning programe i have


I have a PNY Verto FX 5200 card (AGP version), and HL2 runs fine (was XP HOME SP1, updated to SP2).
CrystalDMI 1.0.2 (C) 2004-2007 hiyohiyo
Crystal Dew World :
04 Processor Information
Type : 04h (4)
Length : 23h (35)
Handle : 0004h
Socket Designation : Socket A
Processor Type : Central Processor
Processor Family : AMD Duron(TM) Processor Family
Processor Manufacturer : AMD
Processor Version : AMD Athlon(tm) XP
Voltage : 1.6V
External Clock : 166 MHz
Max Speed : 2100 MHz
Current Speed : 2166 MHz
Memory Type : SDRAM
Memory Size : 512 MB
Memory Speed : 60ns

My friend has the PCI version of the PNY Verto FX 5200 card. HL2 ran fine with XP SP-1 updated to SP-2, nVidia drivers and DX9.0C from the CDROM.

My friend now has the "failed to lock vertex buffer in CmeshDX8 error" since he re-installed from an XP HOME SP-2 CD(the old SP1 CD was damged), downloaded the latest drivers for nVidia, and downloaded the DX9.0C end-user runtime install . Unknown specs (I haven't run CrystalDMI on his yet).

I suspect there may be a correlation between whether or not you have SP1 updated to SP2, or the slipstreamed XP SP2 (SP2 files and settings are already included). Let us test this theory?

I saved my registry files for HL2 and DX9.0C; I will compare them with my friends to see if there are any major differences that would cause this.

Why would they "need" to lock the buffer? Why not have an option to lock/unlock it?
I think this code is set in the HL2 and other engines, not DX9.0C?

I saw from a Google search that other applications have this same error.

Hey Valve/Steam coders! I think 3 years is long enough to wait to fix this!


For those who can't access the MSDN site:

Accessing the Contents of a Vertex Buffer (Direct3D 9)
Vertex buffer objects enable applications to directly access the memory allocated for vertex data. You can retrieve a pointer to vertex buffer memory by calling the IDirect3DVertexBuffer9::Lock method, and then accessing the memory as needed to fill the buffer with new vertex data or to read any data it already contains. The IDirect3DVertexBuffer9::Lock method accepts four parameters. The first, OffsetToLock, is the offset into the vertex data. The second parameter is the size, measured in bytes, of the vertex data. The third parameter accepted is the address of a pointer that points to the vertex data, if the call succeeds.

The last parameter, Flags, tells the system how the memory should be locked. Specify constants for the Flags parameter according to the way the vertex data will be accessed. Make sure the value chosen for D3DUSAGE matches the value chosen for D3DLOCK. For example, if you are creating a vertex buffer with write access only, it doesn't make sense to try to read the data by specifying D3DLOCK_READONLY. Wisely using these flags allows the driver to lock the memory and provide the best performance, given the requested access type.

After you finish filling or reading the vertex data, call the IDirect3DVertexBuffer9::Unlock method, as shown in the following code example.

Copy Code
// This code example assumes the g_pVB is a variable of type
// LPDIRECT3DVERTEXBUFFER9 and that g_Vertices has been
// properly initialized with vertices

// Lock the buffer to gain access to the vertices
VOID* pVertices;

if(FAILED(g_pVB->Lock(0, sizeof(g_Vertices),
(BYTE**)&pVertices, 0 ) ) )
return E_FAIL;

memcpy(pVertices, g_Vertices, sizeof(g_Vertices));

If you create a vertex buffer with the D3DUSAGE_WRITEONLY flag, do not use the D3DLOCK_READONLY locking flag. Use the D3DLOCK_READONLY flag if your application will read only from the vertex buffer memory. Including this flag enables Direct3D to optimize its internal procedures to improve efficiency, given that access to the memory will be read-only.

See Using Dynamic Vertex and Index Buffers for information about using D3DLOCK_DISCARD or D3DLOCK_NOOVERWRITE for the Flags parameter of IDirect3DVertexBuffer9::Lock.

In C++, because you directly access the memory allocated for the vertex buffer, make sure your application properly accesses the allocated memory. Otherwise, you risk rendering that memory invalid. Use the stride of the vertex format that your application uses to move from one vertex in the allocated buffer to another. The vertex buffer memory is a simple array of vertices specified in FVF. Use the stride of whatever vertex format structure you define. You can calculate the stride of each vertex at run time by examining the D3DFVF contained in the vertex buffer description. The following table shows the size for each vertex component.

Vertex Format Flag Size
D3DFVF_NORMAL sizeof(float) x 3
D3DFVF_TEXn sizeof(float) x n
D3DFVF_XYZ sizeof(float) x 3
D3DFVF_XYZRHW sizeof(float) x 4

The number of texture coordinates present in the vertex format is described by the D3DFVF_TEX n flags (where n is a value from 0 to 8). Multiply the number of texture coordinate sets by the size of one set of texture coordinates, which can range from one to four floats, to calculate the memory required for that number of texture coordinates.

Use the total vertex stride to increment and decrement the memory pointer as needed to access particular vertices.

Retrieving Vertex Buffer Descriptions
You can retrieve information about a vertex buffer by calling the IDirect3DVertexBuffer9::GetDesc method. This method fills the members of the D3DVERTEXBUFFER_DESC structure with information about the vertex buffer.

? 2008 Microsoft Corporation. All rights reserved.


failed to lock vertex buffer in CMeshDX8::LockVertexBuffer Help

Current Error: failed to lock vertex buffer in CMeshDX8::LockVertexBuffer

Many people have been getting this error. What I have noticed most about this error is that it is mostly happening to people with ATI video cards. I too have an ATI video card and i had the same error. It think it is because when there is an update for video cards steam applies the update to the games asap so it has better game play. So, if you have this error go to the ATI website and download the update for your video card. I will even be kind enough and give you the link (listed bellow.)
For ATI Cards: Click Here For ATI Video Cards
For ATI Processors: Click Here For ATI Processors
For NVIDIA Cards: Click Here for NVIDIA Video Cards
Other Cards: Sorry but, I don't want to put ever video card Manufacture out there so just Google your video card manufacture

I hope my information helped


Working solution

Hey. I was able to solve this problem, with the help of some guy over at the neoseeker forums. Check out the link below or just check out my quotations of his fix:

"i have the same issue as everyone else.
running: duo 1.84ghz 2mb ram, niv 7300go.
i tried deleting the bin file in hl2 DOD (doesnt work)
re boot helps... the game runs for 15 mins instead of 5

havent tried this yet, but seems viable - found on other forum. (little freaked out to screw with my systems reg)

ok this is a simple fix and i stumbled upon it while searching other forums for a os page pool memory problem.
Heres the solution:
Start Menu > Run > regedit

Surf down to this key. The REG_DWORD "PagedPoolSize"

HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Session Manager\Memory Management

Double click on "PagedPoolSize". Hexadecimal is listed first.
Change the "Value Data" to one of these below:
Note: You only need to enter EITHER Hexadecimal or Decimal.
They both are the same. I recomend using 256Mb should solve the problem.

Megabytes Hexadecimal Decimal
192Mb 0c000000 201326592
256Mb 10000000 268435456
384Mb 18000000 402653184

You do not need anything bigger than 400Mb... in most cases 300Mb is too much as well.

Once you are done, make sure you reboot your computer.


if someone wants to try it and get back i'm all ears"


I did this also and it ran longer before popping the error again.

There's another thread on this a few pages into the forum.


Fix worked for me

The above registry edit fix worked fine for me and I also have an ATI card



i found 2 solutions:
type "-dxlevel 90" in your launch options
download new drivers (this worked for me)
problem solved