レンダーターゲットがRTF_R8の場合、読み出しできないことについて

紛らわしい書き込みで申し訳ありません。

レンダーターゲットとしては使用できております。FRenderTarget::ReadPixelsPtr()を使用してピクセルデータを読み出すと内部の関数で下記のアサートになっていました。

D3D11RenderTarget.cpp
ConvertRAWSurfaceDataToFLinearColor()

	// not supported yet
	check(0);

迷っている時間もなかったため、方針を変更して以下のようにエンジンを書き換えたのですが、間違いなどあれば教えていただけないでしょうか。
下記コードはWindowsのものですが、他のプラットフォームも同じように書き換えました。

D3D11RenderTarget.cpp
ConvertRAWSurfaceDataToFLinearColor()

	// どれ使っているか不明
	else if ( (Format == PF_G8) || (Format == PF_A8) || (Format == PF_R8_UINT) || (Format == PF_L8) )
	{
		for (uint32 Y = 0; Y < Height; Y++)
		{
			uint8* SrcPtr = (In + Y * SrcPitch);
			FLinearColor* DestPtr = Out + Y * Width;
			for (uint32 X = 0; X < Width; X++)
			{
				uint8 SrcVal = *SrcPtr;
				*DestPtr = FLinearColor( SrcVal, SrcVal, SrcVal, SrcVal );
				++SrcPtr;
				++DestPtr;
			}
		}
	}

呼び出し側

	FRenderTarget* RenderTarget = _TexRT->GameThread_GetRenderTargetResource();
	EPixelFormat Format = _TexRT->GetFormat();

	int32 ImageBytes = CalculateImageBytes(_TexRT->SizeX, _TexRT->SizeY, 0, Format);
	_RawData.AddUninitialized(ImageBytes);
	bool bReadSuccess = false;
	switch (Format)
	{
		// どれ使っているか不明
	case PF_G8:
	case PF_A8:
	case PF_R8_UINT:
	case PF_L8:
	{
		//	RRRR で読み出すためのバッファを用意
		TArray	tmpData;
		EPixelFormat	tmpFormat = GetPixelFormatFromRenderTargetFormat( RTF_RGBA8 );
		int32 tmpBytes = CalculateImageBytes(_TexRT->SizeX, _TexRT->SizeY, 0, tmpFormat);
		tmpData.AddUninitialized(tmpBytes);

		//	ピクセル R が RRRR で読み込まれる(Win64は対応追加、XXXは仮対応っぽい)
		bReadSuccess = RenderTarget->ReadPixelsPtr( tmpData.GetData() );
		
		//	R だけを読み出す
		uint32	pixelNum = _TexRT->SizeX * _TexRT->SizeY;
		for ( uint32 i = 0; i < pixelNum; i++ )
		{
			_RawData[i] = tmpData[i].R;
		}

		tmpData.Empty();
	}
	break;
	}
	if (bReadSuccess == false)
	{
		_RawData.Empty();
	}