Graphics
Intel® graphics drivers and software, compatibility, troubleshooting, performance, and optimization
22666 Discussions

Display error with YV12 textures

Vlad_Z_
Beginner
1,008 Views

Hello, 

-----------------------------------------

System Used: N/A
CPU SKU: i5

GPU SKU: HD4600

 

Processor Line: N/A
System BIOS Version: N/A
CMOS settings: N/A
Graphics Driver Version: 10.18.14.4264
GOP/VBIOS Version: N/A
Operating System: windows 
OS Version: 8.1 64bit
API: Directx9
Occurs on non-Intel GPUs?: N/A

Steps to Reproduce:
-------------------------------
1. Create a texture withe the following code: 

g_pd3dDevice->CreateTexture(uintWidth, uintHeight, 1, D3DUSAGE_DYNAMIC, (D3DFORMAT)MAKEFOURCC('Y', 'V', '1', '2'), D3DPOOL_DEFAULT, &g_pTexture, NULL);


2. Copy into the texture(after locking, of course) some raw pixel data:

	D3DLOCKED_RECT d3dlr;
	if (FAILED(g_pTexture->LockRect(0, &d3dlr, 0, D3DLOCK_DISCARD)))
		return;
	
	BYTE *pTxtBuffer; //texture buffer
	pTxtBuffer = static_cast<BYTE *>(d3dlr.pBits);
	
	memcpy(pTxtBuffer, buff, len);

	if (FAILED(g_pTexture->UnlockRect(0)))
		return;


3. Try to render it.
4.
5.
6.
7.
8.
9.
10.

Expected Results:
-------------------------------

The image should display normally.

Actual Results:
-------------------------------

The Y plane seems ok, but the color is red

Additional Information:
-------------------------------

I'm aware that a color conversion is possible, but the d3d documentation states that if a driver accepts the MAKEFOURCC value, which it does, it should work.

screenshot of a comparison is attached. On the left is via a YV12 texture on the right is via directshow graph.


492329

0 Kudos
1 Reply
Michael_C_Intel2
Employee
1,008 Views

Hi Vlad,

We will investigate and see what is going on. We may need some information I will let you know if we do.

-Michael

0 Kudos
Reply