Sign in to follow this  

context->Map() with flag D3D11_MAP_FLAG_DO_NOT_WAIT returns error code E_INVALIDARG = 0x80070057

Recommended Posts

punkcoders    137

I've programmed a streaming texture with the Map method. It works ok with mapFlags set to 0.


Now i'm trying to optimize it with D3D11_MAP_FLAG_DO_NOT_WAIT


But cannot make it work, the map() method returns error code E_INVALIDARG = 0x80070057


Here is how i call map function:

        // update texture
	HRESULT hr = pImmediateContext->Map(s_pTexture, 0, D3D11_MAP_WRITE_DISCARD, /*D3D11_MAP_FLAG_DO_NOT_WAIT*/ 0 , &sub);
	if ( SUCCEEDED( hr ) ) {
	} else {
		char c[256];
		wsprintf(c,"error 0x%x ", hr);

And the texture creation :

	// Create the texture
	desc.Width = 512;
	desc.Height = 512;
	desc.MipLevels = 1;
	desc.ArraySize = 1;
	desc.Format = DXGI_FORMAT_B8G8R8X8_UNORM;
	desc.SampleDesc.Count = 1;
	desc.Usage = D3D11_USAGE_DYNAMIC;
	desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
	desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
	desc.MiscFlags = 0;
	pd3dDevice->CreateTexture2D( &desc, NULL, &s_pTexture );
Edited by punkcoders

Share this post

Link to post
Share on other sites
Samith    2460

The documentation for D3D11_MAP_FLAG states that D3D11_MAP_FLAG_DO_NOT_WAIT cannot be used with D3D11_MAP_WRITE_DISCARD. It sounds like you really just want to use D3D11_MAP_WRITE_DISCARD. This will cause a new block of memory to be allocated when you map the buffer, and you can copy your texture data into that directly without worrying about whether the GPU is accessing the texture.

Share this post

Link to post
Share on other sites
punkcoders    137

That's true, thanks for the doc...


But i've tried with D3D11_MAP_WRITE flag, i still returns an error 0x80070057 ...

Edited by punkcoders

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this