From fed402d6f47bed3145def53a4797a4b4b9cc2086 Mon Sep 17 00:00:00 2001 From: Dan Hughes Date: Mon, 30 Jul 2018 14:12:29 +0100 Subject: [PATCH] LY-84617 203090, Remove 'Igor' from comments throughout LY Nothing interesting here, just removing some names from the comments. --- .../CryEngine/Cry3DEngine/3dEngineLoad.cpp | 6 +- .../CryEngine/Cry3DEngine/SkyLightManager.h | 4 +- dev/Code/CryEngine/CryCommon/IRenderer.h | 4 +- dev/Code/CryEngine/CryCommon/ITexture.h | 4 +- .../CryCommon/ImageExtensionHelper.h | 42 +++---- .../Common/PostProcess/PostProcessUtils.cpp | 10 +- .../RenderDll/Common/RenderCapabilities.h | 2 +- .../RenderDll/Common/RenderThread.cpp | 12 +- .../CryEngine/RenderDll/Common/RenderThread.h | 4 +- .../CryEngine/RenderDll/Common/Renderer.cpp | 14 +-- .../CryEngine/RenderDll/Common/Renderer.h | 3 +- .../CryEngine/RenderDll/Common/RendererDefs.h | 8 +- .../RenderDll/Common/Shaders/ParserBin.cpp | 10 +- .../RenderDll/Common/Textures/Texture.cpp | 28 ++--- .../RenderDll/Common/Textures/Texture.h | 18 --- .../Common/Textures/TextureStreaming.cpp | 20 ++-- .../XRenderD3D9/D3DDeferredPasses.cpp | 10 +- .../XRenderD3D9/D3DDeferredShading.cpp | 108 +++++++++--------- .../RenderDll/XRenderD3D9/D3DFXPipeline.cpp | 18 +-- .../RenderDll/XRenderD3D9/D3DHDRRender.cpp | 32 +++--- .../RenderDll/XRenderD3D9/D3DHWShader.cpp | 4 +- .../XRenderD3D9/D3DHWShaderCompiling.cpp | 8 +- .../RenderDll/XRenderD3D9/D3DPostProcess.cpp | 8 +- .../RenderDll/XRenderD3D9/D3DRendPipeline.cpp | 28 ++--- .../RenderDll/XRenderD3D9/D3DSystem.cpp | 37 +----- .../RenderDll/XRenderD3D9/D3DTexture.cpp | 70 ++++++------ .../XRenderD3D9/D3DTexturesStreaming.cpp | 4 +- .../RenderDll/XRenderD3D9/DXGL/CryDXGL.cpp | 20 ++-- .../RenderDll/XRenderD3D9/DXGL/CryDXGL.hpp | 5 +- .../DXGL/Implementation/GLContext.cpp | 106 ++++++++--------- .../DXGL/Implementation/GLContext.hpp | 24 ++-- .../DXGL/Implementation/GLDevice.cpp | 6 +- .../DXGL/Implementation/GLFeatures.hpp | 4 +- .../DXGL/Implementation/GLFormat.cpp | 4 +- .../DXGL/Implementation/GLResource.cpp | 54 ++++----- .../DXGL/Implementation/GLResource.hpp | 14 +-- .../DXGL/Implementation/GLState.hpp | 2 +- .../DXGL/Implementation/GLView.cpp | 12 +- .../DXGL/Implementation/GLView.hpp | 16 +-- .../XRenderD3D9/DXMETAL/CryDXMETAL.hpp | 2 +- .../CCryDXMETALDepthStencilState.hpp | 8 +- .../Interfaces/CCryDXMETALSamplerState.hpp | 8 +- .../Interfaces/CCryDXMETALSwapChain.hpp | 12 +- .../RenderDll/XRenderD3D9/DeviceInfo.inl | 4 +- .../XRenderD3D9/DeviceManager/DeviceManager.h | 2 +- .../DeviceManager/DeviceManager_D3D11.inl | 6 +- .../RenderDll/XRenderD3D9/DriverD3D.h | 4 +- .../HLSLCrossCompiler/src/toGLSLOperand.c | 6 +- .../src/toMETALInstruction.c | 4 +- .../ResourceCompilerImage/Formats/PVRTC.cpp | 10 +- .../RC/ResourceCompilerImage/PixelFormats.cpp | 4 +- .../RC/ResourceCompilerImage/PixelFormats.h | 20 ++-- 52 files changed, 409 insertions(+), 464 deletions(-) diff --git a/dev/Code/CryEngine/Cry3DEngine/3dEngineLoad.cpp b/dev/Code/CryEngine/Cry3DEngine/3dEngineLoad.cpp index 1225cebdfa..e9e4f0662a 100644 --- a/dev/Code/CryEngine/Cry3DEngine/3dEngineLoad.cpp +++ b/dev/Code/CryEngine/Cry3DEngine/3dEngineLoad.cpp @@ -763,15 +763,15 @@ bool C3DEngine::LoadLevel(const char* szFolderName, const char* szMissionName) LoadDefaultAssets(); - // Confetti BEGIN: Igor Lobanchikov + if (m_pSkyLightManager) { m_pSkyLightManager->InitSkyDomeMesh(); - // Igor: set default render parameters. + // set default render parameters. // for some reason this is not done later??? m_pSkyLightManager->UpdateRenderParams(); } - // Confetti End: Igor Lobanchikov + // Load LevelData.xml File. XmlNodeRef xmlLevelData = GetSystem()->LoadXmlFromFile(GetLevelFilePath(LEVEL_DATA_FILE)); diff --git a/dev/Code/CryEngine/Cry3DEngine/SkyLightManager.h b/dev/Code/CryEngine/Cry3DEngine/SkyLightManager.h index 9185b04b2d..39bf44c0ff 100644 --- a/dev/Code/CryEngine/Cry3DEngine/SkyLightManager.h +++ b/dev/Code/CryEngine/Cry3DEngine/SkyLightManager.h @@ -80,11 +80,11 @@ class CSkyLightManager int GetFrontBuffer() const; int GetBackBuffer() const; void ToggleBuffer(); - // Confetti BEGIN: Igor Lobanchikov + public: void UpdateRenderParams(); private: - // Confetti End: Igor Lobanchikov + void PushUpdateParams(); private: diff --git a/dev/Code/CryEngine/CryCommon/IRenderer.h b/dev/Code/CryEngine/CryCommon/IRenderer.h index 747be2d6a7..fc028336af 100644 --- a/dev/Code/CryEngine/CryCommon/IRenderer.h +++ b/dev/Code/CryEngine/CryCommon/IRenderer.h @@ -427,13 +427,13 @@ enum PublicRenderPrimitiveType #define RFT_FREE_0x2000 0x2000 #define RFT_OCCLUSIONTEST 0x8000 // Support hardware occlusion test. -// Confetti BEGIN: Igor Lobanchikov :END + #define RFT_HW_ARM_MALI 0x04000 // Unclassified ARM (MALI) hardware. #define RFT_HW_INTEL 0x10000 // Unclassified intel hardware. #define RFT_HW_QUALCOMM 0x10000 // Unclassified Qualcomm hardware #define RFT_HW_ATI 0x20000 // Unclassified ATI hardware. #define RFT_HW_NVIDIA 0x40000 // Unclassified NVidia hardware. -// Confetti BEGIN: Igor Lobanchikov :END + #define RFT_HW_MASK 0x74000 // Graphics chip mask. #define RFT_HW_HDR 0x80000 // Hardware supports high dynamic range rendering. diff --git a/dev/Code/CryEngine/CryCommon/ITexture.h b/dev/Code/CryEngine/CryCommon/ITexture.h index 8b26fb59f0..d74f43dc5e 100644 --- a/dev/Code/CryEngine/CryCommon/ITexture.h +++ b/dev/Code/CryEngine/CryCommon/ITexture.h @@ -127,7 +127,7 @@ enum eTEX_Format eTF_PVRTC2, eTF_PVRTC4, - // Confetti BEGIN: Igor Lobanchikov + eTF_ASTC_4x4, eTF_ASTC_5x4, eTF_ASTC_5x5, @@ -147,7 +147,7 @@ enum eTEX_Format eTF_R16U, eTF_R16G16U, eTF_R10G10B10A2UI, - // Confetti End: Igor Lobanchikov + eTF_MaxFormat // unused, must be always the last in the list }; diff --git a/dev/Code/CryEngine/CryCommon/ImageExtensionHelper.h b/dev/Code/CryEngine/CryCommon/ImageExtensionHelper.h index cce71ba8a9..ae2ab309db 100644 --- a/dev/Code/CryEngine/CryCommon/ImageExtensionHelper.h +++ b/dev/Code/CryEngine/CryCommon/ImageExtensionHelper.h @@ -384,14 +384,14 @@ namespace CImageExtensionHelper return 0; // chunk does not exist } - // Confetti BEGIN: Igor Lobanchikov + static ILINE Vec2i GetBlockDim(const ETEX_Format eTF) { if (eTF == eTF_BC1 || eTF == eTF_BC2 || eTF == eTF_BC3 || eTF == eTF_BC5U || eTF == eTF_BC5S || eTF == eTF_BC4U || eTF == eTF_BC4S || eTF == eTF_CTX1 || eTF == eTF_BC6UH || eTF == eTF_BC6SH || eTF == eTF_BC7 || eTF == eTF_EAC_R11 || eTF == eTF_EAC_RG11 || eTF == eTF_ETC2 || eTF == eTF_ETC2A) { return Vec2i(4, 4); } - // Igor: Apple requires the following for the texture: + // Apple requires the following for the texture: // Height and width must be a power of 2 // Height and width must be at least 8 // Must be square @@ -451,14 +451,14 @@ namespace CImageExtensionHelper return 8 / 8; case eTF_R16: return 16 / 8; - // Confetti BEGIN: Igor Lobanchikov + case eTF_R16U: return 16 / 8; case eTF_R16G16U: return 32 / 8; case eTF_R10G10B10A2UI: return 32 / 8; - // Confetti End: Igor Lobanchikov + case eTF_R16F: return 16 / 8; case eTF_R32F: @@ -564,7 +564,7 @@ namespace CImageExtensionHelper return 0; } - // Confetti End: Igor Lobanchikov + inline bool IsBlockCompressed(ETEX_Format eTF) { @@ -585,7 +585,7 @@ namespace CImageExtensionHelper eTF == eTF_EAC_RG11 || eTF == eTF_PVRTC2 || eTF == eTF_PVRTC4 || - // Confetti BEGIN: Igor Lobanchikov + eTF == eTF_ASTC_4x4 || eTF == eTF_ASTC_5x4 || eTF == eTF_ASTC_5x5 || @@ -600,7 +600,7 @@ namespace CImageExtensionHelper eTF == eTF_ASTC_10x10 || eTF == eTF_ASTC_12x10 || eTF == eTF_ASTC_12x12 - // Confetti End: Igor Lobanchikov + ); } @@ -639,7 +639,7 @@ namespace CImageExtensionHelper eTF == eTF_EAC_RG11 || eTF == eTF_PVRTC2 || eTF == eTF_PVRTC4 || - // Confetti BEGIN: Igor Lobanchikov + eTF == eTF_ASTC_4x4 || eTF == eTF_ASTC_5x4 || eTF == eTF_ASTC_5x5 || @@ -654,7 +654,7 @@ namespace CImageExtensionHelper eTF == eTF_ASTC_10x10 || eTF == eTF_ASTC_12x10 || eTF == eTF_ASTC_12x12 - // Confetti End: Igor Lobanchikov + ); } @@ -762,7 +762,7 @@ namespace CImageExtensionHelper case eTF_PVRTC4: return "PVRTC4"; - // Confetti BEGIN: Igor Lobanchikov + case eTF_ASTC_4x4: return "ASTC_4x4"; case eTF_ASTC_5x4: @@ -791,7 +791,7 @@ namespace CImageExtensionHelper return "ASTC_12x10"; case eTF_ASTC_12x12: return "ASTC_12x12"; - // Confetti End: Igor Lobanchikov + case eTF_A8L8: return "A8L8"; @@ -1007,7 +1007,7 @@ namespace CImageExtensionHelper return eTF_PVRTC4; } - // Confetti BEGIN: Igor Lobanchikov + if (!stricmp(sETF, "ASTC_4x4")) { return eTF_ASTC_4x4; @@ -1064,7 +1064,7 @@ namespace CImageExtensionHelper { return eTF_ASTC_12x12; } - // Confetti End: Igor Lobanchikov + if (!stricmp(sETF, "A8L8")) { @@ -1429,7 +1429,7 @@ namespace DDSFormats const CImageExtensionHelper::DDS_PIXELFORMAT DDSPF_ETC2A = { sizeof(CImageExtensionHelper::DDS_PIXELFORMAT), DDS_FOURCC, MAKEFOURCC('E', 'T', '2', 'A'), 0, 0, 0, 0, 0 }; - // Confetti BEGIN: Igor Lobanchikov + const CImageExtensionHelper::DDS_PIXELFORMAT DDSPF_PVRTC2 = { sizeof(CImageExtensionHelper::DDS_PIXELFORMAT), DDS_FOURCC, MAKEFOURCC('P', 'V', 'R', '2'), 0, 0, 0, 0, 0 }; @@ -1477,7 +1477,7 @@ namespace DDSFormats const CImageExtensionHelper::DDS_PIXELFORMAT DDSPF_ASTC_12x12 = { sizeof(CImageExtensionHelper::DDS_PIXELFORMAT), DDS_FOURCC, MAKEFOURCC('A', 'S', 'C', 'C'), 0, 0, 0, 0, 0 }; - // Confetti End: Igor Lobanchikov + const CImageExtensionHelper::DDS_PIXELFORMAT DDSPF_R32F = { sizeof(CImageExtensionHelper::DDS_PIXELFORMAT), DDS_FOURCC, DDS_FOURCC_R32F, 32, 0, 0, 0, 0 }; @@ -1663,7 +1663,7 @@ namespace DDSFormats { return eTF_A8; } - // Confetti BEGIN: Igor Lobanchikov + else if (ddspf.dwFourCC == DDSPF_PVRTC2.dwFourCC) { return eTF_PVRTC2; @@ -1728,7 +1728,7 @@ namespace DDSFormats { return eTF_ASTC_12x12; } - // Confetti End: Igor Lobanchikov + assert(0); return eTF_Unknown; @@ -1884,7 +1884,7 @@ namespace DDSFormats case DXGI_FORMAT_PVRTC4_UNORM_SRGB: return eTF_PVRTC4; #endif - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) //|| defined(CRY_USE_METAL) case DXGI_FORMAT_ASTC_4x4_TYPELESS: return eTF_ASTC_4x4; @@ -1971,7 +1971,7 @@ namespace DDSFormats case DXGI_FORMAT_ASTC_12x12_UNORM_SRGB: return eTF_ASTC_12x12; #endif - // Confetti End: Igor Lobanchikov + // only available as hardware format under DX9 case DXGI_FORMAT_B8G8R8A8_TYPELESS: return eTF_B8G8R8A8; @@ -2086,7 +2086,7 @@ namespace DDSFormats case eTF_PVRTC4: return DDSPF_PVRTC4; - // Confetti BEGIN: Igor Lobanchikov + case eTF_ASTC_4x4: return DDSPF_ASTC_4x4; case eTF_ASTC_5x4: @@ -2115,7 +2115,7 @@ namespace DDSFormats return DDSPF_ASTC_12x10; case eTF_ASTC_12x12: return DDSPF_ASTC_12x12; - // Confetti End: Igor Lobanchikov + default: assert(0); return DDSPF_A8B8G8R8; diff --git a/dev/Code/CryEngine/RenderDll/Common/PostProcess/PostProcessUtils.cpp b/dev/Code/CryEngine/RenderDll/Common/PostProcess/PostProcessUtils.cpp index 17a068a6b8..e242e36c38 100644 --- a/dev/Code/CryEngine/RenderDll/Common/PostProcess/PostProcessUtils.cpp +++ b/dev/Code/CryEngine/RenderDll/Common/PostProcess/PostProcessUtils.cpp @@ -53,7 +53,7 @@ bool SPostEffectsUtils::Create() static ICVar* DolbyCvar = gEnv->pConsole->GetCVar("r_HDRDolby"); int DolbyCvarValue = DolbyCvar ? DolbyCvar->GetIVal() : eDVM_Disabled; - // Confetti BEGIN: Igor Lobanchikov :END + ETEX_Format nHDRReducedFormat = gRenDev->UseHalfFloatRenderTargets() ? eTF_R11G11B10F : eTF_R10G10B10A2; ETEX_Format taaFormat = eTF_R8G8B8A8; @@ -107,12 +107,12 @@ bool SPostEffectsUtils::Create() CreateRenderTarget("$BackBufferScaledTemp_d2", CTexture::s_ptexBackBufferScaledTemp[0], nWidth >> 1, nHeight >> 1, Clr_Unknown, 1, 0, eTF_R8G8B8A8, -1, FT_DONT_RELEASE); - // Confetti BEGIN: Igor Lobanchikov + CreateRenderTarget("$WaterVolumeRefl", CTexture::s_ptexWaterVolumeRefl[0], nWidth >> 1, nHeight >> 1, Clr_Unknown, 1, true, nHDRReducedFormat, TO_WATERVOLUMEREFLMAP, FT_DONT_RELEASE); //CTexture::s_ptexWaterVolumeRefl[0]->DisableMgpuSync(); CreateRenderTarget("$WaterVolumeReflPrev", CTexture::s_ptexWaterVolumeRefl[1], nWidth >> 1, nHeight >> 1, Clr_Unknown, 1, true, nHDRReducedFormat, TO_WATERVOLUMEREFLMAPPREV, FT_DONT_RELEASE); //CTexture::s_ptexWaterVolumeRefl[1]->DisableMgpuSync(); - // Confetti End: Igor Lobanchikov + CreateRenderTarget("$BackBufferScaled_d4", CTexture::s_ptexBackBufferScaled[1], nWidth >> 2, nHeight >> 2, Clr_Unknown, 1, 0, eTF_R8G8B8A8, TO_BACKBUFFERSCALED_D4, FT_DONT_RELEASE); CreateRenderTarget("$BackBufferScaledTemp_d4", CTexture::s_ptexBackBufferScaledTemp[1], nWidth >> 2, nHeight >> 2, Clr_Unknown, 1, 0, eTF_R8G8B8A8, -1, FT_DONT_RELEASE); @@ -130,7 +130,7 @@ bool SPostEffectsUtils::Create() // Water phys simulation requires data overframes, need to handle for each GPU in MGPU mode CreateRenderTarget("$WaterRipplesDDN_0", CTexture::s_ptexWaterRipplesDDN, 256, 256, Clr_Unknown, 1, true, eTF_R8G8B8A8, TO_WATERRIPPLESMAP); //CTexture::s_ptexWaterRipplesDDN->DisableMgpuSync(); - // Confetti BEGIN: Igor Lobanchikov + if (gRenDev->UseHalfFloatRenderTargets()) { CreateRenderTarget("$WaterVolumeDDN", CTexture::s_ptexWaterVolumeDDN, 64, 64, Clr_Unknown, 1, true, eTF_R16G16B16A16F, TO_WATERVOLUMEMAP); @@ -139,7 +139,7 @@ bool SPostEffectsUtils::Create() { CreateRenderTarget("$WaterVolumeDDN", CTexture::s_ptexWaterVolumeDDN, 64, 64, Clr_Unknown, 1, true, eTF_R8G8B8A8, TO_WATERVOLUMEMAP); } - // Confetti End: Igor Lobanchikov + //CTexture::s_ptexWaterVolumeDDN->DisableMgpuSync(); if (CRenderer::CV_r_watervolumecaustics && CRenderer::CV_r_watercaustics) //@NOTE: CV_r_watercaustics will be removed when the infinite ocean component feature toggle is removed. diff --git a/dev/Code/CryEngine/RenderDll/Common/RenderCapabilities.h b/dev/Code/CryEngine/RenderDll/Common/RenderCapabilities.h index a1a2ea028a..877aaeb5bb 100644 --- a/dev/Code/CryEngine/RenderDll/Common/RenderCapabilities.h +++ b/dev/Code/CryEngine/RenderDll/Common/RenderCapabilities.h @@ -25,7 +25,7 @@ namespace RenderCapabilities static const unsigned int s_gpuVendorIdIntel = 0x8086; static const unsigned int s_gpuVendorIdQualcomm = 0x5143; static const unsigned int s_gpuVendorIdSamsung = 0x1099; - // Confetti BEGIN: Igor Lobanchikov :END + static const unsigned int s_gpuVendorIdARM = 0x13B5; //Note that for platforms that don't support texture views, you are still allowed to create a single view, that view must "match" the creation parameters of diff --git a/dev/Code/CryEngine/RenderDll/Common/RenderThread.cpp b/dev/Code/CryEngine/RenderDll/Common/RenderThread.cpp index bfe6f41cd1..9f977b2261 100644 --- a/dev/Code/CryEngine/RenderDll/Common/RenderThread.cpp +++ b/dev/Code/CryEngine/RenderDll/Common/RenderThread.cpp @@ -2180,7 +2180,7 @@ void SRenderThread::ProcessCommands() gcpRendD3D->BindContextToThread(CryGetCurrentThreadId()); } # endif - // Confetti BEGIN: Igor Lobanchikov + #if defined(OPENGL) && !DXGL_FULL_EMULATION && !defined(CRY_USE_METAL) if (CRenderer::CV_r_multithreaded) { @@ -2191,7 +2191,7 @@ void SRenderThread::ProcessCommands() m_kDXGLDeviceContextHandle.Set(&gcpRendD3D->GetDeviceContext(), !CRenderer::CV_r_multithreaded); } #endif //defined(OPENGL) && !DXGL_FULL_EMULATION - // Confetti End: Igor Lobanchikov + #ifdef DO_RENDERSTATS @@ -3315,12 +3315,12 @@ void SRenderThread::Process() const uint64 elapsed = CryGetTicks() - start; gEnv->pSystem->GetCurrentUpdateTimeStats().RenderTime = elapsed; } - // Confetti BEGIN: Igor Lobanchikov + #if defined(OPENGL) && !DXGL_FULL_EMULATION && !defined(CRY_USE_METAL) m_kDXGLDeviceContextHandle.Set(NULL, !CRenderer::CV_r_multithreaded); m_kDXGLContextHandle.Set(NULL); #endif //defined(OPENGL) && !DXGL_FULL_EMULATION - // Confetti End: Igor Lobanchikov + } void SRenderThread::ProcessLoading() @@ -3355,12 +3355,12 @@ void SRenderThread::ProcessLoading() SwitchMode(false); } } - // Confetti BEGIN: Igor Lobanchikov + #if defined(OPENGL) && !DXGL_FULL_EMULATION && !defined(CRY_USE_METAL) m_kDXGLDeviceContextHandle.Set(NULL, !CRenderer::CV_r_multithreaded); m_kDXGLContextHandle.Set(NULL); #endif //defined(OPENGL) && !DXGL_FULL_EMULATION - // Confetti End: Igor Lobanchikov + } #ifndef STRIP_RENDER_THREAD diff --git a/dev/Code/CryEngine/RenderDll/Common/RenderThread.h b/dev/Code/CryEngine/RenderDll/Common/RenderThread.h index 3919d6a4c4..727389367f 100644 --- a/dev/Code/CryEngine/RenderDll/Common/RenderThread.h +++ b/dev/Code/CryEngine/RenderDll/Common/RenderThread.h @@ -265,12 +265,12 @@ struct SRenderThread #include AZ_RESTRICTED_FILE(RenderThread_h, AZ_RESTRICTED_PLATFORM) #endif HRESULT m_hResult; - // Confetti BEGIN: Igor Lobanchikov + #if defined(OPENGL) && !DXGL_FULL_EMULATION && !defined(CRY_USE_METAL) SDXGLContextThreadLocalHandle m_kDXGLContextHandle; SDXGLDeviceContextThreadLocalHandle m_kDXGLDeviceContextHandle; #endif //defined(OPENGL) && !DXGL_FULL_EMULATION - // Confetti End: Igor Lobanchikov + float m_fTimeIdleDuringLoading; float m_fTimeBusyDuringLoading; TArray m_Commands[RT_COMMAND_BUF_COUNT]; // m_nCurThreadFill shows which commands are filled by main thread diff --git a/dev/Code/CryEngine/RenderDll/Common/Renderer.cpp b/dev/Code/CryEngine/RenderDll/Common/Renderer.cpp index 991978b9a8..d642879512 100644 --- a/dev/Code/CryEngine/RenderDll/Common/Renderer.cpp +++ b/dev/Code/CryEngine/RenderDll/Common/Renderer.cpp @@ -791,7 +791,7 @@ int CRenderer::CV_r_EnableGMEMPostProcCS; int CRenderer::CV_r_GMEM_DOF_Gather1_Quality; int CRenderer::CV_r_GMEM_DOF_Gather2_Quality; -// Confetti BEGIN: Igor Lobanchikov :END + int CRenderer::CV_r_RainUseStencilMasking; // Confetti Thomas Zeng: 0 = diable, 1 = enable @@ -800,7 +800,6 @@ int CRenderer::CV_r_EnableComputeDownSampling; // Confetti Vera float CRenderer::CV_r_CubeDepthMapFarPlane; -// Confetti BEGIN: Igor Lobanchikov :END is respected by OpenGL ES only int CRenderer::CV_r_ForceFixedPointRenderTargets; // Fur control parameters @@ -3421,7 +3420,7 @@ void CRenderer::InitRenderer() "0 Compute disabled with postprocessing on GMEM path\n" "1 Compute enabled with postprocessing on GMEM path\n"); - // Confetti BEGIN: Igor Lobanchikov :END + REGISTER_CVAR3("r_RainUseStencilMasking", CV_r_RainUseStencilMasking, 0, VF_REQUIRE_APP_RESTART, "GMEM Deferred Rain enable stencil masking\n" "Usage: \n" @@ -3447,7 +3446,6 @@ void CRenderer::InitRenderer() "GMEM render path doesn't support per-portal blend weight.\n" "0.f to 1.f weight\n"); - // Confetti BEGIN: Igor Lobanchikov :END is respected by OpenGL ES only REGISTER_CVAR3("r_ForceFixedPointRenderTargets", CV_r_ForceFixedPointRenderTargets, 0, VF_NULL, "Forces the engine to use fixed point render targets instead of floating point ones.\n" "This variable is respected on Android OpenGL ES only\n" @@ -7777,9 +7775,9 @@ void CRenderer::SetTextureStreamListener(ITextureStreamListener* pListener) ////////////////////////////////////////////////////////////////////////// float CRenderer::GetGPUFrameTime() { - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) - // TODO: Igor: if this won't work consider different frame time calculation + // TODO: if this won't work consider different frame time calculation return gEnv->pTimer->GetRealFrameTime(); #else #if 0 @@ -7803,7 +7801,7 @@ float CRenderer::GetGPUFrameTime() return fGPUtime; #endif #endif - // Confetti End: Igor Lobanchikov + } void CRenderer::GetRenderTimes(SRenderTimes& outTimes) @@ -8214,7 +8212,7 @@ bool CRenderer::UseHalfFloatRenderTargets() return true; #endif } -// Confetti End: Igor Lobanchikov + Matrix44A CRenderer::GetCameraMatrix() { diff --git a/dev/Code/CryEngine/RenderDll/Common/Renderer.h b/dev/Code/CryEngine/RenderDll/Common/Renderer.h index 0cebe30909..cbdf1d79f8 100644 --- a/dev/Code/CryEngine/RenderDll/Common/Renderer.h +++ b/dev/Code/CryEngine/RenderDll/Common/Renderer.h @@ -2486,13 +2486,12 @@ class CRenderer static int CV_r_GMEM_DOF_Gather1_Quality; static int CV_r_GMEM_DOF_Gather2_Quality; - // Confetti BEGIN: Igor Lobanchikov :END + static int CV_r_RainUseStencilMasking; // Confetti Thomas Zeng: 0 = disable, 1 = enable static int CV_r_EnableComputeDownSampling; - // Confetti BEGIN: Igor Lobanchikov :END is respected by OpenGL ES only static int CV_r_ForceFixedPointRenderTargets; // Confetti Vera diff --git a/dev/Code/CryEngine/RenderDll/Common/RendererDefs.h b/dev/Code/CryEngine/RenderDll/Common/RendererDefs.h index ff5adf7412..cef84769b4 100644 --- a/dev/Code/CryEngine/RenderDll/Common/RendererDefs.h +++ b/dev/Code/CryEngine/RenderDll/Common/RendererDefs.h @@ -386,8 +386,8 @@ enum EVerifyType #undef AZ_RESTRICTED_SECTION_IMPLEMENTED #elif defined(OPENGL) #include "CryLibrary.h" -// Confetti BEGIN: Igor Lobanchikov -// Igor: enable metal for ios device only. Emulator is not supported for now. + +// enable metal for ios device only. Emulator is not supported for now. #if TARGET_OS_IPHONE || TARGET_OS_TV #ifndef __IPHONE_9_0 #define __IPHONE_9_0 90000 @@ -399,7 +399,7 @@ enum EVerifyType #else #include "XRenderD3D9/DXGL/CryDXGL.hpp" #endif -// Confetti END: Igor Lobanchikov + #elif defined(CRY_USE_DX12) #include "CryLibrary.h" typedef uintptr_t SOCKET; @@ -464,7 +464,7 @@ typedef uintptr_t SOCKET; // On platforms that support staging buffers, special buffers are allocated that act as a staging area // for updating buffer contents on the fly. -// Confetti Igor: when staged updates are disabled CPU will have direct access to the pool's buffers' content +// when staged updates are disabled CPU will have direct access to the pool's buffers' content // and update data directly. This cuts memory consumption and reduces the number of copies. // GPU won't be used to update buffer content but it will be used to perform defragmentation. #if defined(AZ_RESTRICTED_PLATFORM) diff --git a/dev/Code/CryEngine/RenderDll/Common/Shaders/ParserBin.cpp b/dev/Code/CryEngine/RenderDll/Common/Shaders/ParserBin.cpp index 795467dcb8..04a0b572af 100644 --- a/dev/Code/CryEngine/RenderDll/Common/Shaders/ParserBin.cpp +++ b/dev/Code/CryEngine/RenderDll/Common/Shaders/ParserBin.cpp @@ -59,9 +59,9 @@ ShaderBucketAllocator g_shaderBucketAllocator; IGeneralMemoryHeap* g_shaderGeneralHeap = nullptr; -// Confetti BEGIN: Igor Lobanchikov + std::string g_generatedShaderPath; -// Confetti End: Igor Lobanchikov + #if defined(OPENGL_ES) const char* GetGLESShaderCachePath() @@ -757,7 +757,7 @@ void CParserBin::Init() // Fixed point for devices that don't support float rendering FX_REGISTER_TOKEN(FIXED_POINT); - // Confetti BEGIN: Igor Lobanchikov :END + FX_REGISTER_TOKEN(GLES3_0); FX_REGISTER_TOKEN(Load); @@ -896,7 +896,7 @@ void CParserBin::SetupForGLES3() gRenDev->m_cEF.m_Bin.InvalidateCache(); gRenDev->m_cEF.mfInitLookups(); - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) && defined(OPENGL_ES) assert(gcpRendD3D); if (!gcpRendD3D->UseHalfFloatRenderTargets()) @@ -908,7 +908,7 @@ void CParserBin::SetupForGLES3() gRenDev->m_cEF.m_ShadersCache = g_generatedShaderPath.c_str(); } #endif - // Confetti End: Igor Lobanchikov + SAFE_DELETE(gRenDev->m_cEF.m_pGlobalExt); gRenDev->m_cEF.m_pGlobalExt = gRenDev->m_cEF.mfCreateShaderGenInfo("RunTime", true); diff --git a/dev/Code/CryEngine/RenderDll/Common/Textures/Texture.cpp b/dev/Code/CryEngine/RenderDll/Common/Textures/Texture.cpp index 2f0e44ee57..7dfe7e4a29 100644 --- a/dev/Code/CryEngine/RenderDll/Common/Textures/Texture.cpp +++ b/dev/Code/CryEngine/RenderDll/Common/Textures/Texture.cpp @@ -126,9 +126,9 @@ CTexture* CTexture::s_ptexRainSSOcclusion[2]; CTexture* CTexture::s_ptexRainDropsRT[2]; CTexture* CTexture::s_ptexRT_ShadowPool; -// Confetti BEGIN: Igor Lobanchikov + CTexture* CTexture::s_ptexRT_ShadowStub; -// Confetti End: Igor Lobanchikov + CTexture* CTexture::s_ptexCloudsLM; CTexture* CTexture::s_ptexSceneTarget = NULL; @@ -1541,10 +1541,10 @@ uint32 CTexture::TextureDataSize(uint32 nWidth, uint32 nHeight, uint32 nDepth, u } else { - // Confetti BEGIN: Igor Lobanchikov + const Vec2i BlockDim = GetBlockDim(eTF); const int nBytesPerBlock = CImageExtensionHelper::BytesPerBlock(eTF); - // Confetti End: Igor Lobanchikov + uint32 nSize = 0; while ((nWidth || nHeight || nDepth) && nMips) @@ -1553,9 +1553,9 @@ uint32 CTexture::TextureDataSize(uint32 nWidth, uint32 nHeight, uint32 nDepth, u nHeight = max(1U, nHeight); nDepth = max(1U, nDepth); - // Confetti BEGIN: Igor Lobanchikov + nSize += ((nWidth + BlockDim.x - 1) / BlockDim.x) * ((nHeight + BlockDim.y - 1) / BlockDim.y) * nDepth * nBytesPerBlock; - // Confetti End: Igor Lobanchikov + nWidth >>= 1; nHeight >>= 1; @@ -1578,11 +1578,11 @@ bool CTexture::IsInPlaceFormat(const ETEX_Format fmt) case eTF_R8: case eTF_R8S: case eTF_R16: - // Confetti BEGIN: Igor Lobanchikov + case eTF_R16U: case eTF_R16G16U: case eTF_R10G10B10A2UI: - // Confetti End: Igor Lobanchikov + case eTF_R16F: case eTF_R32F: case eTF_R8G8: @@ -1618,7 +1618,7 @@ bool CTexture::IsInPlaceFormat(const ETEX_Format fmt) case eTF_B8G8R8A8: case eTF_B8G8R8X8: - // Confetti BEGIN: Igor Lobanchikov + #ifdef CRY_USE_METAL case eTF_PVRTC2: case eTF_PVRTC4: @@ -1639,7 +1639,7 @@ bool CTexture::IsInPlaceFormat(const ETEX_Format fmt) case eTF_ASTC_12x10: case eTF_ASTC_12x12: #endif - // Confetti End: Igor Lobanchikov + return true; default: return false; @@ -2776,9 +2776,9 @@ void CTexture::ReleaseSystemTextures() SAFE_RELEASE_FORCE(s_ptexSkyDomeRayleigh); SAFE_RELEASE_FORCE(s_ptexSkyDomeMoon); SAFE_RELEASE_FORCE(s_ptexRT_ShadowPool); - // Confetti BEGIN: Igor Lobanchikov + SAFE_RELEASE_FORCE(s_ptexRT_ShadowStub); - // Confetti End: Igor Lobanchikov + SAFE_RELEASE_FORCE(s_ptexSceneNormalsMapMS); SAFE_RELEASE_FORCE(s_ptexSceneDiffuseAccMapMS); @@ -2851,9 +2851,9 @@ void CTexture::LoadDefaultSystemTextures() #include AZ_RESTRICTED_FILE(Texture_cpp, AZ_RESTRICTED_PLATFORM) #endif s_ptexRT_ShadowPool = CTexture::CreateTextureObject("$RT_ShadowPool", 0, 0, 1, eTT_2D, FT_DONT_STREAM | FT_USAGE_RENDERTARGET | FT_USAGE_DEPTHSTENCIL, eTF_Unknown); - // Confetti BEGIN: Igor Lobanchikov + s_ptexRT_ShadowStub = CTexture::CreateTextureObject("$RT_ShadowStub", 0, 0, 1, eTT_2D, FT_DONT_STREAM | FT_USAGE_RENDERTARGET | FT_USAGE_DEPTHSTENCIL, eTF_Unknown); - // Confetti End: Igor Lobanchikov + s_ptexDepthBufferQuarter = CTexture::CreateTextureObject("$DepthBufferQuarter", 0, 0, 1, eTT_2D, FT_DONT_RELEASE | FT_DONT_STREAM | FT_USAGE_RENDERTARGET | FT_USAGE_DEPTHSTENCIL, eTF_Unknown); diff --git a/dev/Code/CryEngine/RenderDll/Common/Textures/Texture.h b/dev/Code/CryEngine/RenderDll/Common/Textures/Texture.h index 8565e29065..f3d070330a 100644 --- a/dev/Code/CryEngine/RenderDll/Common/Textures/Texture.h +++ b/dev/Code/CryEngine/RenderDll/Common/Textures/Texture.h @@ -149,13 +149,11 @@ enum #define MIN_DOF_COC_K 6 -// Confetti BEGIN: Igor Lobanchikov #if defined(OPENGL_ES) || defined(CRY_USE_METAL) #define MAX_OCCLUSION_READBACK_TEXTURES 2 #else #define MAX_OCCLUSION_READBACK_TEXTURES 8 #endif -// Confetti End: Igor Lobanchikov #define DYNTEXTURE_TEXCACHE_LIMIT 32 @@ -1014,9 +1012,7 @@ struct SPixFormat // Pixel format info. D3DFormat DeviceFormat;// Pixel format from Direct3D. const char* Desc; // Stat: Human readable name for stats. - // Confetti BEGIN: Igor Lobanchikov int8 BytesPerBlock;// Total bits per pixel. - // Confetti End: Igor Lobanchikov uint8 bCanDS : 1; uint8 bCanRT : 1; uint8 bCanMultiSampleRT : 1; @@ -1035,9 +1031,7 @@ struct SPixFormat } void Init() { - // Confetti BEGIN: Igor Lobanchikov BytesPerBlock = 0; - // Confetti End: Igor Lobanchikov DeviceFormat = (D3DFormat)0; Desc = NULL; Next = NULL; @@ -1052,10 +1046,8 @@ struct SPixFormat } bool IsValid() const { - // Confetti BEGIN: Igor Lobanchikov if (BytesPerBlock) { - // Confetti End: Igor Lobanchikov return true; } return false; @@ -1075,11 +1067,9 @@ struct SPixFormatSupport SPixFormat m_FormatR10G10B10A2; //32 bit SPixFormat m_FormatR16; //16 bit - // Confetti BEGIN: Igor Lobanchikov SPixFormat m_FormatR16U; //16 bit SPixFormat m_FormatR16G16U; //32 bit SPixFormat m_FormatR10G10B10A2UI; //32 bit - // Confetti End: Igor Lobanchikov SPixFormat m_FormatR16F; //16 bit SPixFormat m_FormatR32F; //32 bit SPixFormat m_FormatR16G16; //32 bit @@ -1120,7 +1110,6 @@ struct SPixFormatSupport SPixFormat m_FormatB8G8R8X8; //32 bit SPixFormat m_FormatB8G8R8A8; //32 bit - // Confetti BEGIN: Igor Lobanchikov (copied from DriverD3D.h by bosnichd) #ifdef CRY_USE_METAL SPixFormat m_FormatPVRTC2; //ETC2 compressed RGB for mobile SPixFormat m_FormatPVRTC4; //ETC2a compressed RGBA for mobile @@ -1141,7 +1130,6 @@ struct SPixFormatSupport SPixFormat m_FormatASTC_12x10; SPixFormat m_FormatASTC_12x12; #endif - // Confetti End: Igor Lobanchikov (copied from DriverD3D.h by bosnichd) SPixFormat* m_FirstPixelFormat; @@ -2249,22 +2237,18 @@ class CTexture static void GenerateNearestShadowMap(); static void DestroyNearestShadowMap(); - // Confetti BEGIN: Igor Lobanchikov static ILINE Vec2i GetBlockDim(const ETEX_Format eTF) { return CImageExtensionHelper::GetBlockDim(eTF); } - // Confetti End: Igor Lobanchikov static int CalcNumMips(int nWidth, int nHeight); // upload mip data from file regarding to platform specifics static bool IsInPlaceFormat(const ETEX_Format fmt); static void ExpandMipFromFile(byte* dest, const int destSize, const byte* src, const int srcSize, const ETEX_Format fmt); - // Confetti BEGIN: Igor Lobanchikov static ILINE bool IsBlockCompressed(const ETEX_Format eTF) { return CImageExtensionHelper::IsBlockCompressed(eTF); } static ILINE int BytesPerBlock(ETEX_Format eTF) { return CImageExtensionHelper::BytesPerBlock(eTF); } - // Confetti End: Igor Lobanchikov static const char* NameForTextureFormat(ETEX_Format eTF) { return CImageExtensionHelper::NameForTextureFormat(eTF); } static const char* NameForTextureType(ETEX_Type eTT) { return CImageExtensionHelper::NameForTextureType(eTT); } static ETEX_Format TextureFormatForName(const char* str) { return CImageExtensionHelper::TextureFormatForName(str); } @@ -2383,9 +2367,7 @@ class CTexture static CTexture* s_ptexRainDropsRT[2]; static CTexture* s_ptexRT_ShadowPool; - // Confetti BEGIN: Igor Lobanchikov static CTexture* s_ptexRT_ShadowStub; - // Confetti End: Igor Lobanchikov static CTexture* s_ptexCloudsLM; static CTexture* s_ptexSceneTarget; // Shared rt for generic usage (refraction/srgb/diffuse accumulation/hdr motionblur/etc) diff --git a/dev/Code/CryEngine/RenderDll/Common/Textures/TextureStreaming.cpp b/dev/Code/CryEngine/RenderDll/Common/Textures/TextureStreaming.cpp index 915d70b89b..5e37462da7 100644 --- a/dev/Code/CryEngine/RenderDll/Common/Textures/TextureStreaming.cpp +++ b/dev/Code/CryEngine/RenderDll/Common/Textures/TextureStreaming.cpp @@ -776,11 +776,11 @@ bool CTexture::StreamPrepareComposition() int nTopMipWidth = m_nWidth; int nTopMipHeight = m_nHeight; - // Confetti BEGIN: Igor Lobanchikov + const Vec2i vMipAlign = CTexture::GetBlockDim(m_eTFDst); nTopMipWidth = Align(nTopMipWidth, vMipAlign.x); nTopMipHeight = Align(nTopMipHeight, vMipAlign.y); - // Confetti End: Igor Lobanchikov + for (int iMip = 0; iMip < m_nMips; ++iMip) { @@ -999,11 +999,11 @@ bool CTexture::StreamPrepare(CImageFile* pIM) int nTopMipWidth = m_nWidth; int nTopMipHeight = m_nHeight; - // Confetti BEGIN: Igor Lobanchikov + const Vec2i vMipAlign = CTexture::GetBlockDim(m_eTFDst); nTopMipWidth = Align(nTopMipWidth, vMipAlign.x); nTopMipHeight = Align(nTopMipHeight, vMipAlign.y); - // Confetti End: Igor Lobanchikov + for (int iMip = 0; iMip < m_nMips; ++iMip) { @@ -1074,9 +1074,9 @@ bool CTexture::StreamPrepare(CImageFile* pIM) int nOffs = 0; assert(nSyncStartMip <= nSyncEndMip); - // Confetti BEGIN: Igor Lobanchikov + const Vec2i vMipAlign = CTexture::GetBlockDim(m_eTFDst); - // Confetti End: Igor Lobanchikov + for (int iSide = 0; iSide < m_CacheFileHeader.m_nSides; iSide++) { @@ -1087,12 +1087,12 @@ bool CTexture::StreamPrepare(CImageFile* pIM) { STexMipHeader& mh = m_pFileTexMips->m_pMipHeader[iMip]; SMipData* mp = &mh.m_Mips[iSide]; - // Confetti BEGIN: Igor Lobanchikov + if (!mp->DataArray) { mp->Init(mh.m_SideSize, Align(nMipW, vMipAlign.x), Align(nMipH, vMipAlign.y)); } - // Confetti End: Igor Lobanchikov + if (eTileMode != eTM_None) { @@ -1420,7 +1420,7 @@ bool CTexture::CanStreamInPlace(int nMip, STexPoolItem* pNewPoolItem) case eTF_EAC_RG11: case eTF_ETC2: case eTF_ETC2A: - // Confetti BEGIN: Igor Lobanchikov + #ifdef CRY_USE_METAL case eTF_PVRTC2: case eTF_PVRTC4: @@ -1441,7 +1441,7 @@ bool CTexture::CanStreamInPlace(int nMip, STexPoolItem* pNewPoolItem) case eTF_ASTC_12x10: case eTF_ASTC_12x12: #endif - // Confetti End: Igor Lobanchikov + bFormatCompatible = true; break; diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DDeferredPasses.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DDeferredPasses.cpp index c4492c618f..bf99ff9fa9 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DDeferredPasses.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DDeferredPasses.cpp @@ -470,7 +470,7 @@ bool CD3D9Renderer::FX_DeferredRainGBuffer() return false; } - // Confetti BEGIN: Igor Lobanchikov :END + const bool bUseStencilMask = gcpRendD3D->FX_GetEnabledGmemPath(nullptr) && CRenderer::CV_r_RainUseStencilMasking; // If GMEM path is enabled but no framebuffer fetches are supported, then neither can this pass. @@ -483,7 +483,7 @@ bool CD3D9Renderer::FX_DeferredRainGBuffer() PROFILE_LABEL_SCOPE("DEFERRED_RAIN_GBUFFER"); - // Confetti BEGIN: Igor Lobanchikov :END + static const int numOfDeferredStencilRainTechniques = 2; static CCryNameTSCRC tech[numOfDeferredStencilRainTechniques] = {CCryNameTSCRC("DeferredRainGBufferStencil"), CCryNameTSCRC("DeferredRainGBufferNoDiscard")}; static CCryNameTSCRC techDiscard = "DeferredRainGBuffer"; @@ -536,7 +536,7 @@ bool CD3D9Renderer::FX_DeferredRainGBuffer() m_RP.m_FlagsShader_RT |= g_HWSR_MaskBit[HWSR_SAMPLE1]; // Splashes } - // Confetti BEGIN: Igor Lobanchikov + const int rainStencilMask = 0x40; for (int i = bUseStencilMask ? 0 : 1; i < numOfDeferredStencilRainTechniques; ++i) { @@ -636,7 +636,7 @@ bool CD3D9Renderer::FX_DeferredRainGBuffer() SD3DPostEffectsUtils::DrawFullScreenTriWPOS(CTexture::s_ptexSceneNormalsMap->GetWidth(), CTexture::s_ptexSceneNormalsMap->GetHeight(), 1.0f); SD3DPostEffectsUtils::ShEndPass(); } - // Confetti End: Igor Lobanchikov + if (!gcpRendD3D->FX_GetEnabledGmemPath(nullptr)) // no need to restore... this would break GMEM path { @@ -792,7 +792,7 @@ bool CD3D9Renderer::FX_DeferredSnowLayer() gcpRendD3D->FX_SetState(renderState); gcpRendD3D->FX_Commit(); - // Confetti BEGIN: Igor Lobanchikov :END + SD3DPostEffectsUtils::DrawFullScreenTriWPOS(CTexture::s_ptexBackBuffer->GetWidth(), CTexture::s_ptexBackBuffer->GetHeight(), 0, &gcpRendD3D->m_FullResRect); SD3DPostEffectsUtils::ShEndPass(); diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DDeferredShading.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DDeferredShading.cpp index eda27df65e..985d6a27b1 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DDeferredShading.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DDeferredShading.cpp @@ -1908,11 +1908,11 @@ void CDeferredShading::LightPass(const SRenderLight* const __restrict pDL, bool { PROFILE_LABEL_SCOPE("STENCIL_VOLUME"); - // Confetti BEGIN: Igor Lobanchikov + #if !defined(CRY_USE_METAL) && !defined(ANDROID) SpecularAccEnableMRT(false); #endif - // Confetti End: Igor Lobanchikov + rd->SetDepthBoundTest(0.0f, 1.0f, false); // stencil pre-passes are rop bound, using depth bounds increases even more rop cost rd->FX_StencilFrustumCull((pDL->m_Flags & DLF_CASTSHADOW_MAPS) ? -4 : -1, pDL, NULL, 0); @@ -1929,7 +1929,7 @@ void CDeferredShading::LightPass(const SRenderLight* const __restrict pDL, bool rd->SetDepthBoundTest(pDepthBounds.x, pDepthBounds.z, true); } - // Confetti BEGIN: Igor Lobanchikov + #if !defined(CRY_USE_METAL) && !defined(ANDROID) if (bStencilMask) { @@ -2081,13 +2081,13 @@ void CDeferredShading::LightPass(const SRenderLight* const __restrict pDL, bool if (CD3D9Renderer::eGT_256bpp_PATH != gcpRendD3D->FX_GetEnabledGmemPath(nullptr)) { // Note: Shadows use slot 3 and slot 7 for shadow map and jitter map - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) m_pDepthRT->Apply(0, m_nTexStatePoint, EFTT_UNKNOWN, -2, SResourceView::DefaultView); #else m_pDepthRT->Apply(0, m_nTexStatePoint, EFTT_UNKNOWN, -1, SResourceView::DefaultView); #endif - // Confetti End: Igor Lobanchikov + m_pNormalsRT->Apply(1, m_nTexStatePoint, EFTT_UNKNOWN, -1, SResourceView::DefaultView); m_pDiffuseRT->Apply(2, m_nTexStatePoint, EFTT_UNKNOWN, -1, SResourceView::DefaultView); m_pSpecularRT->Apply(4, m_nTexStatePoint, EFTT_UNKNOWN, -1, SResourceView::DefaultView); @@ -2336,7 +2336,7 @@ void CDeferredShading::PrepareClipVolumeData(bool& bOutdoorVisible) PROFILE_LABEL_SCOPE("CLIPVOLUMES TO STENCIL"); if (!gcpRendD3D->FX_GetEnabledGmemPath(nullptr)) { - // Confetti BEGIN: Igor Lobanchikov + if (!RenderCapabilities::SupportsStencilTextures()) { // Because there's no support for stencil textures we can't resolve the stencil to a texture. @@ -2349,7 +2349,7 @@ void CDeferredShading::PrepareClipVolumeData(bool& bOutdoorVisible) { rd->FX_PushRenderTarget(0, (CTexture*)NULL, &rd->m_DepthBufferOrigMSAA); } - // Confetti End: Igor Lobanchikov + rd->RT_SetViewport(0, 0, m_pLBufferDiffuseRT->GetWidth(), m_pLBufferDiffuseRT->GetHeight()); } @@ -2409,11 +2409,11 @@ void CDeferredShading::PrepareClipVolumeData(bool& bOutdoorVisible) if (RenderCapabilities::SupportsStencilTextures()) { PROFILE_LABEL_SCOPE("RESOLVE STENCIL"); - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) bool renderTargetWasPopped = SpecularAccEnableMRT(false); #endif - // Confetti End: Igor Lobanchikov + rd->FX_PushRenderTarget(0, m_pResolvedStencilRT, NULL, -1, false, 1); // CONFETTI BEGIN: David Srour @@ -2438,7 +2438,7 @@ void CDeferredShading::PrepareClipVolumeData(bool& bOutdoorVisible) GetUtils().ShEndPass(); rd->FX_PopRenderTarget(0); - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) // Do not try to re-push a render target if one was not popped above. if (renderTargetWasPopped) @@ -2446,7 +2446,7 @@ void CDeferredShading::PrepareClipVolumeData(bool& bOutdoorVisible) SpecularAccEnableMRT(true); } #endif - // Confetti End: Igor Lobanchikov + } } @@ -2605,22 +2605,22 @@ bool CDeferredShading::AmbientPass(SRenderLight* pGlobalCubemap, bool& bOutdoorV if (!gcpRendD3D->FX_GetEnabledGmemPath(nullptr)) { pDepthBufferRT->SetShaderResourceView(rd->m_pZBufferDepthReadOnlySRV, bMSAA); // DX11 requires explicitly bind depth then stencil to have access to both depth and stencil read from shader. Formats also must match - // Confetti BEGIN: Igor Lobanchikov + #ifndef ANDROID pDepthBufferRT->Apply(3, m_nTexStatePoint, EFTT_UNKNOWN, -1, m_nBindResourceMsaa); pDepthBufferRT->SetShaderResourceView(rd->m_pZBufferStencilReadOnlySRV, bMSAA); pDepthBufferRT->Apply(4, m_nTexStatePoint, EFTT_UNKNOWN, -1, m_nBindResourceMsaa); #endif // !ANDROID - // Confetti End: Igor Lobanchikov + m_pMSAAMaskRT->Apply(5, m_nTexStatePoint); } CTextureManager::Instance()->GetDefaultTexture("EnvironmentBRDF")->Apply(10, m_nTexStateLinear); - // Confetti BEGIN: Igor Lobanchikov - // Igor: this is expected by Mali drivers - // this "workaround" was suggested by the Mali team as we were getting incorrect stencil/depth tests behavior due to driver bug + + // this is expected by Mali drivers + // this "workaround" was suggested by the Mali team as we were getting incorrect stencil/depth tests behavior due to driver bug if (!gcpRendD3D->FX_GetEnabledGmemPath(nullptr) && (gRenDev->GetFeatures() & RFT_HW_ARM_MALI)) { int nPrevState = rRP.m_CurState; @@ -2646,7 +2646,7 @@ bool CDeferredShading::AmbientPass(SRenderLight* pGlobalCubemap, bool& bOutdoorV rd->FX_PopVP(); rd->FX_SetState(nPrevState); } - // Confetti End: Igor Lobanchikov + SD3DPostEffectsUtils::DrawFullScreenTriWPOS(m_pLBufferDiffuseRT->GetWidth(), m_pLBufferDiffuseRT->GetHeight(), 0, &gcpRendD3D->m_FullResRect); SD3DPostEffectsUtils::ShEndPass(); @@ -2666,16 +2666,16 @@ bool CDeferredShading::AmbientPass(SRenderLight* pGlobalCubemap, bool& bOutdoorV pBlack->Apply(4, m_nTexStatePoint); } - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) - // Igor: we don't want to swich RT's too often for metal + // we don't want to swich RT's too often for metal // We want to keep all light RTs bound regardless of // specular RT usage. // This trick re-enables specular RT SpecularAccEnableMRT(false); SpecularAccEnableMRT(true); #endif - // Confetti End: Igor Lobanchikov + if (!gcpRendD3D->FX_GetEnabledGmemPath(nullptr)) { @@ -2790,11 +2790,11 @@ void CDeferredShading::DeferredCubemapPass(const SRenderLight* const __restrict if (bStencilMask) { - // Confetti BEGIN: Igor Lobanchikov + #if !defined(CRY_USE_METAL) && !defined(ANDROID) SpecularAccEnableMRT(false); #endif - // Confetti End: Igor Lobanchikov + rd->SetDepthBoundTest(0.0f, 1.0f, false); rd->FX_StencilFrustumCull(-1, pDL, NULL, 0); } @@ -2819,11 +2819,11 @@ void CDeferredShading::DeferredCubemapPass(const SRenderLight* const __restrict bHasSpecular = true; } - // Confetti BEGIN: Igor Lobanchikov + #if !defined(CRY_USE_METAL) && !defined(ANDROID) SpecularAccEnableMRT(bHasSpecular); #endif - // Confetti End: Igor Lobanchikov + if (CRenderer::CV_r_deferredshadingLightVolumes) { @@ -2963,7 +2963,7 @@ void CDeferredShading::DeferredCubemapPass(const SRenderLight* const __restrict CTextureManager::Instance()->GetDefaultTexture("EnvironmentBRDF")->Apply(10, m_nTexStateLinear); - // Confetti BEGIN: Igor Lobanchikov + // If the texture is not loaded Metal runtime will assert if (texDiffuse->IsTextureLoaded() && (!bHasSpecular || texSpecular->IsTextureLoaded())) { @@ -2984,7 +2984,7 @@ void CDeferredShading::DeferredCubemapPass(const SRenderLight* const __restrict SD3DPostEffectsUtils::DrawFullScreenTriWPOS(m_pLBufferDiffuseRT->GetWidth(), m_pLBufferDiffuseRT->GetHeight(), pDepthBounds.x); } } - // Confetti End: Igor Lobanchikov + SD3DPostEffectsUtils::ShEndPass(); @@ -3002,11 +3002,11 @@ void CDeferredShading::DeferredCubemapPass(const SRenderLight* const __restrict rd->SetDepthBoundTest(0.f, 1.f, false); } - // Confetti BEGIN: Igor Lobanchikov + #if !defined(CRY_USE_METAL) && !defined(ANDROID) SpecularAccEnableMRT(true); #endif - // Confetti End: Igor Lobanchikov + if (CRenderer::CV_r_DeferredShadingScissor) { @@ -3072,14 +3072,14 @@ void CDeferredShading::ScreenSpaceReflectionPass() rd->FX_PushRenderTarget(0, dstTex, NULL); - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) const Vec2& vDownscaleFactor = gcpRendD3D->m_RP.m_CurDownscaleFactor; rd->RT_SetViewport(0, 0, dstTex->GetWidth() * vDownscaleFactor.x + 0.5f, dstTex->GetHeight() * vDownscaleFactor.y + 0.5f); #else rd->RT_SetViewport(0, 0, dstTex->GetWidth(), dstTex->GetHeight()); #endif - // Confetti End: Igor Lobanchikov + rd->FX_SetState(GS_NODEPTHTEST); @@ -3106,39 +3106,39 @@ void CDeferredShading::ScreenSpaceReflectionPass() if (!CRenderer::CV_r_SSReflHalfRes) { - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) PostProcessUtils().StretchRect(CTexture::s_ptexHDRTarget, CTexture::s_ptexHDRTargetScaled[0], false, false, false, false, SPostEffectsUtils::eDepthDownsample_None, false, &gcpRendD3D->m_HalfResRect); #else PostProcessUtils().StretchRect(CTexture::s_ptexHDRTarget, CTexture::s_ptexHDRTargetScaled[0]); #endif - // Confetti End: Igor Lobanchikov + } // Convolve sharp reflections - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) const Vec2& vDownscaleFactor = gcpRendD3D->m_RP.m_CurDownscaleFactor; gRenDev->RT_SetScissor(true, 0, 0, CTexture::s_ptexHDRTargetScaled[1]->GetWidth() * vDownscaleFactor.x + 0.5f, CTexture::s_ptexHDRTargetScaled[1]->GetHeight() * vDownscaleFactor.y + 0.5f); #endif - // Confetti End: Igor Lobanchikov + PostProcessUtils().StretchRect(CTexture::s_ptexHDRTargetScaled[0], CTexture::s_ptexHDRTargetScaled[1]); PostProcessUtils().TexBlurGaussian(CTexture::s_ptexHDRTargetScaled[1], 1, 1.0f, 3.0f, false, 0, false, CTexture::s_ptexHDRTargetScaledTempRT[1]); - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) gRenDev->RT_SetScissor(true, 0, 0, CTexture::s_ptexHDRTargetScaled[2]->GetWidth() * vDownscaleFactor.x + 0.5f, CTexture::s_ptexHDRTargetScaled[2]->GetHeight() * vDownscaleFactor.y + 0.5f); #endif - // Confetti End: Igor Lobanchikov + PostProcessUtils().StretchRect(CTexture::s_ptexHDRTargetScaled[1], CTexture::s_ptexHDRTargetScaled[2]); PostProcessUtils().TexBlurGaussian(CTexture::s_ptexHDRTargetScaled[2], 1, 1.0f, 3.0f, false, 0, false, CTexture::s_ptexHDRTargetScaledTempRT[2]); - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) gRenDev->RT_SetScissor(true, 0, 0, CTexture::s_ptexHDRTargetScaled[3]->GetWidth() * vDownscaleFactor.x + 0.5f, CTexture::s_ptexHDRTargetScaled[3]->GetHeight() * vDownscaleFactor.y + 0.5f); #endif - // Confetti End: Igor Lobanchikov + PostProcessUtils().StretchRect(CTexture::s_ptexHDRTargetScaled[2], CTexture::s_ptexHDRTargetScaled[3]); PostProcessUtils().TexBlurGaussian(CTexture::s_ptexHDRTargetScaled[3], 1, 1.0f, 3.0f, false, 0, false, CTexture::s_ptexHDRTargetScaledTempRT[3]); @@ -3160,23 +3160,23 @@ void CDeferredShading::ScreenSpaceReflectionPass() CTexture::s_ptexHDRTargetScaled[2]->Apply(3, m_nTexStateLinear); CTexture::s_ptexHDRTargetScaled[3]->Apply(4, m_nTexStateLinear); - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) const Vec2& vDownscaleFactor = gcpRendD3D->m_RP.m_CurDownscaleFactor; gRenDev->RT_SetScissor(true, 0, 0, CTexture::s_ptexHDRTargetScaled[0]->GetWidth() * vDownscaleFactor.x + 0.5f, CTexture::s_ptexHDRTargetScaled[0]->GetHeight() * vDownscaleFactor.y + 0.5f); #endif - // Confetti End: Igor Lobanchikov + SD3DPostEffectsUtils::ShBeginPass(m_pShader, tech, FEF_DONTSETTEXTURES | FEF_DONTSETSTATES); SD3DPostEffectsUtils::DrawFullScreenTri(dstTex->GetWidth(), dstTex->GetHeight()); SD3DPostEffectsUtils::ShEndPass(); rd->FX_PopRenderTarget(0); - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) gRenDev->RT_SetScissor(false, 0, 0, 0, 0); #endif - // Confetti End: Igor Lobanchikov + } // Restore the old flags @@ -3230,13 +3230,13 @@ void CDeferredShading::ApplySSReflections() CTextureManager::Instance()->GetDefaultTexture("EnvironmentBRDF")->Apply(5, m_nTexStateLinear); - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) SD3DPostEffectsUtils::DrawFullScreenTriWPOS(pSSRTarget->GetWidth(), pSSRTarget->GetHeight(), 0, &gcpRendD3D->m_HalfResRect); #else SD3DPostEffectsUtils::DrawFullScreenTriWPOS(pSSRTarget->GetWidth(), pSSRTarget->GetHeight()); #endif - // Confetti End: Igor Lobanchikov + SD3DPostEffectsUtils::ShEndPass(); if (!gcpRendD3D->FX_GetEnabledGmemPath(nullptr)) @@ -4423,7 +4423,7 @@ bool CDeferredShading::ShadowLightPasses(const SRenderLight& light, const int nL rd->m_RP.m_TI[m_nThreadID].m_PersFlags &= ~RBPF_MIRRORCULL; } - // Confetti BEGIN: Igor Lobanchikov + #if !defined(CRY_USE_METAL) && !defined(ANDROID) SpecularAccEnableMRT(false); #endif @@ -4463,7 +4463,7 @@ bool CDeferredShading::ShadowLightPasses(const SRenderLight& light, const int nL m_nRenderState |= GS_STENCIL; } - // Confetti BEGIN: Igor Lobanchikov + #if !defined(CRY_USE_METAL) && !defined(ANDROID) SpecularAccEnableMRT(true); #endif @@ -4482,13 +4482,13 @@ bool CDeferredShading::ShadowLightPasses(const SRenderLight& light, const int nL TS.m_bSRGBLookup = false; TS.SetComparisonFilter(true); CTexture::s_ptexRT_ShadowPool->Apply(3, CTexture::GetTexState(TS)); - // Confetti BEGIN: Igor Lobanchikov - // Igor: this assigned comparison sampler to correct sampler slot for shadowmapped light sources + + // this assigned comparison sampler to correct sampler slot for shadowmapped light sources if (!rd->UseHalfFloatRenderTargets()) { CTexture::SetSamplerState(CTexture::GetTexState(TS), 0, eHWSC_Pixel); } - // Confetti End: Igor Lobanchikov + } else { @@ -4602,16 +4602,16 @@ void CDeferredShading::CreateDeferredMaps() m_pResolvedStencilRT = CTexture::s_ptexGmemStenLinDepth; } - // Confetti BEGIN: Igor Lobanchikov + SD3DPostEffectsUtils::CreateRenderTarget("$SceneDiffuse", CTexture::s_ptexSceneDiffuse, nWidth, nHeight, Clr_Empty, true, false, eTF_R8G8B8A8, -1, nMsaaAndSrgbFlag); - // Confetti End: Igor Lobanchikov + SD3DPostEffectsUtils::CreateRenderTarget("$SceneSpecular", CTexture::s_ptexSceneSpecular, nWidth, nHeight, Clr_Empty, true, false, eTF_R8G8B8A8, -1, nMsaaAndSrgbFlag); #if defined(AZ_RESTRICTED_PLATFORM) #define AZ_RESTRICTED_SECTION D3DDEFERREDSHADING_CPP_SECTION_4 #include AZ_RESTRICTED_FILE(D3DDeferredShading_cpp, AZ_RESTRICTED_PLATFORM) #endif - // Confetti BEGIN: Igor Lobanchikov :END + ETEX_Format fmtZScaled = gcpRendD3D->UseHalfFloatRenderTargets() ? eTF_R16G16F : eTF_R16G16U; SD3DPostEffectsUtils::CreateRenderTarget("$ZTargetScaled", CTexture::s_ptexZTargetScaled, nWidth >> 1, nHeight >> 1, Clr_FarPlane, 1, 0, fmtZScaled, TO_DOWNSCALED_ZTARGET_FOR_AO); SD3DPostEffectsUtils::CreateRenderTarget("$ZTargetScaled2", CTexture::s_ptexZTargetScaled2, nWidth >> 2, nHeight >> 2, Clr_FarPlane, 1, 0, fmtZScaled, TO_QUARTER_ZTARGET_FOR_AO); @@ -4635,13 +4635,13 @@ void CDeferredShading::CreateDeferredMaps() CTexture::s_ptexRT_ShadowPool->CreateRenderTarget(eTF_Unknown, Clr_FarPlane); } - // Confetti BEGIN: Igor Lobanchikov + CTexture::s_ptexRT_ShadowStub->Invalidate(1, 1, eShadTF); if (!CTexture::IsTextureExist(CTexture::s_ptexRT_ShadowStub)) { CTexture::s_ptexRT_ShadowStub->CreateRenderTarget(eTF_Unknown, Clr_FarPlane); } - // Confetti End: Igor Lobanchikov + } if (CRenderer::CV_r_DeferredShadingTiled > 0) diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DFXPipeline.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DFXPipeline.cpp index b2b8b1636e..a27da98463 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DFXPipeline.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DFXPipeline.cpp @@ -310,10 +310,10 @@ void CD3D9Renderer::FX_ClearTargetRegion(const uint32 nAdditionalStates /* = 0*/ int nState = GS_NODEPTHTEST; if (m_pNewTarget[0]->m_ClearFlags & (CLEAR_ZBUFFER | CLEAR_STENCIL)) { - // Confetti BEGIN: Igor Lobanchikov - // Igor: for some reason GS_DEPTHFUNC_GREAT does not on Android anymore + + // for some reason GS_DEPTHFUNC_GREAT does not on Android anymore nState = GS_DEPTHFUNC_NOTEQUAL; - // Confetti End: Igor Lobanchikov + nState &= ~GS_NODEPTHTEST; nState |= GS_DEPTHWRITE; @@ -1872,11 +1872,11 @@ void CD3D9Renderer::FX_SetColorDontCareActions(int const nTarget, #ifdef CRY_USE_METAL DXMETALSetColorDontCareActions(srt->m_pTarget, loadDontCare, storeDontCare); #endif - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) DXGLSetColorDontCareActions(srt->m_pTarget, loadDontCare, storeDontCare); #endif - // Confetti End: Igor Lobanchikov + } } @@ -1895,11 +1895,11 @@ void CD3D9Renderer::FX_SetDepthDontCareActions(int const nTarget, #ifdef CRY_USE_METAL DXMETALSetDepthDontCareActions(srt->m_pDepth, loadDontCare, storeDontCare); #endif - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) DXGLSetDepthDontCareActions(srt->m_pDepth, loadDontCare, storeDontCare); #endif - // Confetti End: Igor Lobanchikov + } } @@ -1918,11 +1918,11 @@ void CD3D9Renderer::FX_SetStencilDontCareActions(int const nTarget, #ifdef CRY_USE_METAL DXMETALSetStencilDontCareActions(srt->m_pDepth, loadDontCare, storeDontCare); #endif - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) DXGLSetStencilDontCareActions(srt->m_pDepth, loadDontCare, storeDontCare); #endif - // Confetti End: Igor Lobanchikov + } } diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DHDRRender.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DHDRRender.cpp index 7de27832ff..1d2ae6bbfc 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DHDRRender.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DHDRRender.cpp @@ -153,9 +153,9 @@ void CHDRPostProcess::AddRenderTarget(uint32 nWidth, uint32 nHeight, const Color drt.fPriority = fPriority; drt.lplpStorage = pStorage; drt.nCustomID = nCustomID; - // Confetti BEGIN: Igor Lobanchikov + drt.nPitch = nWidth * CTexture::BytesPerBlock(Format); - // Confetti End: Igor Lobanchikov + cry_strcpy(drt.szName, szName); m_pRenderTargets.push_back(drt); } @@ -212,7 +212,7 @@ void CTexture::GenerateHDRMaps() ETEX_Format nHDRFormat = eTF_R16G16B16A16F; // note: for main rendertarget R11G11B10 precision/range (even with rescaling) not enough for darks vs good blooming quality - // Confetti BEGIN: Igor Lobanchikov :END + ETEX_Format nHDRReducedFormat = r->UseHalfFloatRenderTargets() ? eTF_R11G11B10F : eTF_R10G10B10A2; uint32 nHDRTargetFlags = FT_DONT_RELEASE | (CRenderer::CV_r_msaa ? FT_USAGE_MSAA : 0); @@ -225,7 +225,7 @@ void CTexture::GenerateHDRMaps() pHDRPostProcess->AddRenderTarget(r->GetWidth(), r->GetHeight(), Clr_Unknown, r->UseHalfFloatRenderTargets() ? nHDRFormat : nHDRReducedFormat, 1.0f, "$HDRTarget", &s_ptexHDRTarget, nHDRTargetFlagsUAV); } - // Confetti BEGIN: Igor Lobanchikov :END + pHDRPostProcess->AddRenderTarget(r->GetWidth(), r->GetHeight(), Clr_Unknown, nHDRReducedFormat, 1.0f, "$HDRTargetPrev", &s_ptexHDRTargetPrev); pHDRPostProcess->AddRenderTarget(r->GetWidth(), r->GetHeight(), Clr_Unknown, nHDRFormat, 1.0f, "$FurLightAcc", &s_ptexFurLightAcc, FT_DONT_RELEASE); @@ -280,13 +280,13 @@ void CTexture::GenerateHDRMaps() pHDRPostProcess->AddRenderTarget(r->GetWidth() >> 1, r->GetHeight() >> 1, Clr_Unknown, nHDRFormat, 0.9f, "$HDRDofLayerNear", &s_ptexHDRDofLayers[0], FT_DONT_RELEASE); pHDRPostProcess->AddRenderTarget(r->GetWidth() >> 1, r->GetHeight() >> 1, Clr_Unknown, nHDRFormat, 0.9f, "$HDRDofLayerFar", &s_ptexHDRDofLayers[1], FT_DONT_RELEASE); - // Confetti BEGIN: Igor Lobanchikov + #if METAL pHDRPostProcess->AddRenderTarget(r->GetWidth() >> 1, r->GetHeight() >> 1, Clr_Unknown, eTF_R16F, 1.0f, "$MinCoC_0_Temp", &s_ptexSceneCoCTemp, FT_DONT_RELEASE); #else pHDRPostProcess->AddRenderTarget(r->GetWidth() >> 1, r->GetHeight() >> 1, Clr_Unknown, eTF_R16G16F, 1.0f, "$MinCoC_0_Temp", &s_ptexSceneCoCTemp, FT_DONT_RELEASE); #endif - // Confetti End: Igor Lobanchikov + pHDRPostProcess->AddRenderTarget(r->GetWidth(), r->GetHeight(), Clr_Unknown, eTF_R16G16F, 1.0, "$CoC_History0", &s_ptexSceneCoCHistory[0], FT_DONT_RELEASE); pHDRPostProcess->AddRenderTarget(r->GetWidth(), r->GetHeight(), Clr_Unknown, eTF_R16G16F, 1.0, "$CoC_History1", &s_ptexSceneCoCHistory[1], FT_DONT_RELEASE); @@ -294,13 +294,13 @@ void CTexture::GenerateHDRMaps() for (i = 0; i < MIN_DOF_COC_K; i++) { sprintf_s(szName, "$MinCoC_%d", i); - // Confetti BEGIN: Igor Lobanchikov + #if METAL pHDRPostProcess->AddRenderTarget((r->m_dwHDRCropWidth >> 1) / (i + 1), (r->m_dwHDRCropHeight >> 1) / (i + 1), Clr_Unknown, eTF_R16F, 0.1f, szName, &s_ptexSceneCoC[i], FT_DONT_RELEASE, -1, true); #else pHDRPostProcess->AddRenderTarget((r->m_dwHDRCropWidth >> 1) / (i + 1), (r->m_dwHDRCropHeight >> 1) / (i + 1), Clr_Unknown, eTF_R16G16F, 0.1f, szName, &s_ptexSceneCoC[i], FT_DONT_RELEASE, -1, true); #endif - // Confetti End: Igor Lobanchikov + } if (gcpRendD3D->FX_GetEnabledGmemPath(nullptr)) @@ -660,11 +660,11 @@ void CHDRPostProcess::HalfResDownsampleHDRTarget() CTexture* pSrcRT = CTexture::s_ptexHDRTarget; CTexture* pDstRT = CTexture::s_ptexHDRTargetScaled[0]; - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) gRenDev->RT_SetScissor(true, 0, 0, gcpRendD3D->m_HalfResRect.right, gcpRendD3D->m_HalfResRect.bottom); #endif - // Confetti End: Igor Lobanchikov + if (CRenderer::CV_r_HDRBloomQuality >= 2) { @@ -675,11 +675,11 @@ void CHDRPostProcess::HalfResDownsampleHDRTarget() PostProcessUtils().StretchRect(pSrcRT, pDstRT, true); } - // Confetti BEGIN: Igor Lobanchikov + #ifdef CRY_USE_METAL gRenDev->RT_SetScissor(false, 0, 0, 0, 0); #endif - // Confetti End: Igor Lobanchikov + } @@ -690,11 +690,11 @@ void CHDRPostProcess::QuarterResDownsampleHDRTarget() CTexture* pSrcRT = CTexture::s_ptexHDRTargetScaled[0]; CTexture* pDstRT = CTexture::s_ptexHDRTargetScaled[1]; - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) gRenDev->RT_SetScissor(true, 0, 0, (gcpRendD3D->m_HalfResRect.right + 1) >> 1, (gcpRendD3D->m_HalfResRect.bottom + 1) >> 1); #endif - // Confetti End: Igor Lobanchikov + // TODO: this pass seems redundant. Can we get rid of it in non-gmem paths too? if (!gcpRendD3D->FX_GetEnabledGmemPath(nullptr)) @@ -729,11 +729,11 @@ void CHDRPostProcess::QuarterResDownsampleHDRTarget() PostProcessUtils().StretchRect(pSrcRT, pDstRT); } - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) gRenDev->RT_SetScissor(false, 0, 0, 0, 0); #endif - // Confetti End: Igor Lobanchikov + } diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DHWShader.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DHWShader.cpp index f0cece9326..53c9c29050 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DHWShader.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DHWShader.cpp @@ -2774,9 +2774,9 @@ bool CHWShader_D3D::mfSetTextures(const std::vector& Textures, EHWSh break; } - // Confetti BEGIN: Igor Lobanchikov + CTexture* tex = nCustomID ? CTexture::GetByID(nCustomID) : CTexture::s_ptexRT_ShadowStub; - // Confetti End: Igor Lobanchikov + tex->ApplyTexture(nTUnit, eSHClass, nResViewKey); } break; diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DHWShaderCompiling.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DHWShaderCompiling.cpp index c1a4942075..205b94ae8b 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DHWShaderCompiling.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DHWShaderCompiling.cpp @@ -39,11 +39,11 @@ #include #endif -// Confetti BEGIN: Igor Lobanchikov + #ifdef CRY_USE_METAL #import #endif -// Confetti End: Igor Lobanchikov + #include "../Common/Shaders/RemoteCompiler.h" #include "../Common/RenderCapabilities.h" @@ -3962,13 +3962,13 @@ void CHWShader_D3D::mfSubmitRequestLine(SHWSInstance* pInst, string* pRequestLin bool CHWShader_D3D::mfCompileHLSL_Int(CShader* pSH, char* prog_text, LPD3D10BLOB* ppShader, void** ppConstantTable, LPD3D10BLOB* ppErrorMsgs, string& strErr, std::vector& InstBindVars) { - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) && defined(_DEBUG) NSString* source = [[NSString alloc] initWithCString:prog_text encoding:NSASCIIStringEncoding]; NSLog(@ "%@", source); #endif - // Confetti End: Igor Lobanchikov + HRESULT hr = S_OK; SHWSInstance* pInst = m_pCurInst; const char* szProfile = mfProfileString(pInst->m_eClass); diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DPostProcess.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DPostProcess.cpp index e3ca9b7768..25b465105a 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DPostProcess.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DPostProcess.cpp @@ -377,12 +377,12 @@ void SD3DPostEffectsUtils::DownsampleDepth(CTexture* pSrc, CTexture* pDst, bool SetTexture(pSrc, 0, FILTER_POINT, 1); } - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) const Vec2& vDownscaleFactor = gcpRendD3D->m_RP.m_CurDownscaleFactor; gRenDev->RT_SetScissor(true, 0, 0, pDst->GetWidth() * vDownscaleFactor.x + 0.5f, pDst->GetHeight() * vDownscaleFactor.y + 0.5f); #endif - // Confetti End: Igor Lobanchikov + #if defined(OPENGL_ES) uint32 glVersion = RenderCapabilities::GetDeviceGLVersion(); @@ -400,11 +400,11 @@ void SD3DPostEffectsUtils::DownsampleDepth(CTexture* pSrc, CTexture* pDst, bool RECT source = { 0, 0, pDst->GetWidth(), pDst->GetHeight() }; DrawFullScreenTri((srcWidth + 1) / 2, (srcHeight + 1) / 2, 0.f, &source); - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) gRenDev->RT_SetScissor(false, 0, 0, 0, 0); #endif - // Confetti End: Igor Lobanchikov + ShEndPass(); diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DRendPipeline.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DRendPipeline.cpp index 46cccf96cf..8655be1d02 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DRendPipeline.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DRendPipeline.cpp @@ -1449,11 +1449,11 @@ bool CD3D9Renderer::FX_ZScene(bool bEnable, bool bClearZBuffer, bool bRenderNorm FX_SetColorDontCareActions(0, false, false); // CONFETTI END - // Confetti BEGIN: Igor Lobanchikov + #ifndef CRY_USE_METAL if (!bZPrePass) #endif - // Confetti End: Igor Lobanchikov + { FX_PushRenderTarget(nDiffuseTargetID, CTexture::s_ptexSceneDiffuse, NULL); @@ -1499,11 +1499,11 @@ bool CD3D9Renderer::FX_ZScene(bool bEnable, bool bClearZBuffer, bool bRenderNorm FX_PopRenderTarget(0); - // Confetti BEGIN: Igor Lobanchikov + #ifndef CRY_USE_METAL if (!bZPrePass) #endif - // Confetti End: Igor Lobanchikov + { FX_PopRenderTarget(nDiffuseTargetID); FX_PopRenderTarget(nDiffuseTargetID + 1); @@ -2977,7 +2977,7 @@ void CD3D9Renderer::FX_WaterVolumesPreprocess() int nWidth = int(pCurrWaterVolRefl->GetWidth() * m_RP.m_CurDownscaleFactor.x); int nHeight = int(pCurrWaterVolRefl->GetHeight() * m_RP.m_CurDownscaleFactor.y); - // Confetti BEGIN: Igor Lobanchikov :END + PostProcessUtils().StretchRect(CTexture::s_ptexCurrSceneTarget, CTexture::s_ptexHDRTargetPrev, false, bRgbkSrc, false, false, SPostEffectsUtils::eDepthDownsample_None, false, &gcpRendD3D->m_FullResRect); RECT rect = { 0, pCurrWaterVolRefl->GetHeight() - nHeight, nWidth, nHeight }; @@ -3129,14 +3129,14 @@ void CD3D9Renderer::FX_LinearizeDepth(CTexture* ptexZ) SetupLinearizeDepthParams(CShaderMan::s_shPostEffects); - // Confetti BEGIN: Igor Lobanchikov + RECT rect; rect.left = rect.top = 0; rect.right = LONG(ptexZ->GetWidth() * m_RP.m_CurDownscaleFactor.x); rect.bottom = LONG(ptexZ->GetHeight() * m_RP.m_CurDownscaleFactor.y); PostProcessUtils().DrawFullScreenTri(ptexZ->GetWidth(), ptexZ->GetHeight(), 0, &rect); - // Confetti End: Igor Lobanchikov + D3DShaderResourceView* pNullSRV[1] = { NULL }; m_DevMan.BindSRV(eHWSC_Pixel, pNullSRV, 15, 1); @@ -6191,7 +6191,7 @@ void CD3D9Renderer::RT_RenderScene(int nFlags, SThreadInfo& TI, void(* RenderFun FX_ProcessRenderList(EFSLIST_POSTPROCESS, BEFORE_WATER, RenderFunc, false); // Sorted list without preprocess of all fog passes and screen shaders FX_ProcessRenderList(EFSLIST_POSTPROCESS, AFTER_WATER , RenderFunc, false); // Sorted list without preprocess of all fog passes and screen shaders - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) || defined(ANDROID) // If need upscale do it here. { @@ -6205,9 +6205,9 @@ void CD3D9Renderer::RT_RenderScene(int nFlags, SThreadInfo& TI, void(* RenderFun CTexture* pCurrRT = CTexture::s_ptexSceneDiffuse; GetUtils().CopyScreenToTexture(pCurrRT); - // Igor: copy osm-guaided viewport rect. It will be destroyed soon. + // copy osm-guaided viewport rect. It will be destroyed soon. RECT rcSrcRegion = gcpRendD3D->m_FullResRect; - // Igor: Since now we render to a full RT. + // Since now we render to a full RT. gcpRendD3D->SetCurDownscaleFactor(Vec2(1, 1)); gcpRendD3D->RT_SetViewport(0, 0, gcpRendD3D->GetWidth(), gcpRendD3D->GetHeight()); @@ -6215,7 +6215,7 @@ void CD3D9Renderer::RT_RenderScene(int nFlags, SThreadInfo& TI, void(* RenderFun } } #endif - // Confetti End: Igor Lobanchikov + bool bDrawAfterPostProcess = !(gcpRendD3D->m_RP.m_PersFlags1 & RBPF1_SKIP_AFTER_POST_PROCESS); RT_SetViewport(0, 0, GetWidth(), GetHeight()); @@ -6647,7 +6647,7 @@ void CD3D9Renderer::LogShaderImportMiss(const CShader* pShader) #if defined(AZ_RESTRICTED_SECTION_IMPLEMENTED) #undef AZ_RESTRICTED_SECTION_IMPLEMENTED #elif defined(OPENGL_ES) && DXGL_INPUT_GLSL - // Confetti BEGIN: Igor Lobanchikov + uint32 glVersion = RenderCapabilities::GetDeviceGLVersion(); if (glVersion == DXGLES_VERSION_30) { @@ -6657,13 +6657,13 @@ void CD3D9Renderer::LogShaderImportMiss(const CShader* pShader) { shaderList = "ShaderList_GLES3_1.txt"; } - // Confetti End: Igor Lobanchikov + #elif defined(OPENGL) && DXGL_INPUT_GLSL shaderList = "ShaderList_GL4.txt"; #else shaderList = "ShaderList_PC.txt"; #endif - // Confetti End: Igor Lobanchikov + #ifdef SHADER_ASYNC_COMPILATION if (CRenderer::CV_r_shadersasynccompiling) diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DSystem.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DSystem.cpp index f4744eeb9e..d5929b3a45 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DSystem.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DSystem.cpp @@ -718,9 +718,7 @@ int CD3D9Renderer::EnumDisplayFormats(SDispFormat* formats) { formats[numUniqueModes].m_Width = dispModes[i].Width; formats[numUniqueModes].m_Height = dispModes[i].Height; - // Confetti BEGIN: Igor Lobanchikov formats[numUniqueModes].m_BPP = CTexture::BytesPerBlock(CTexture::TexFormatFromDeviceFormat(dispModes[i].Format)) * 8; - // Confetti End: Igor Lobanchikov } prevWidth = dispModes[i].Width; @@ -1017,7 +1015,6 @@ void CD3D9Renderer::ShutDownFast() } SAFE_DELETE(m_pRT); - // Confetti BEGIN: Igor Lobanchikov #if defined(OPENGL) #if !DXGL_FULL_EMULATION && !defined(CRY_USE_METAL) if (CV_r_multithreaded) @@ -1027,7 +1024,6 @@ void CD3D9Renderer::ShutDownFast() #endif //!DXGL_FULL_EMULATION m_devInfo.Release(); #endif //defined(OPENGL) - // Confetti End: Igor Lobanchikov } void CD3D9Renderer::RT_ShutDown(uint32 nFlags) @@ -1068,7 +1064,6 @@ void CD3D9Renderer::RT_ShutDown(uint32 nFlags) FX_PipelineShutdown(); - // Confetti BEGIN: Igor Lobanchikov #if defined(SUPPORT_DEVICE_INFO) //m_devInfo.Release(); # if defined(OPENGL) && !DXGL_FULL_EMULATION && !defined(CRY_USE_METAL) @@ -1076,7 +1071,6 @@ void CD3D9Renderer::RT_ShutDown(uint32 nFlags) m_pRT->m_kDXGLContextHandle.Set(NULL); # endif //if defined(OPENGL) && !DXGL_FULL_EMULATION #endif - // Confetti End: Igor Lobanchikov SAFE_RELEASE(m_pZBufferReadOnlyDSV); @@ -1124,7 +1118,6 @@ void CD3D9Renderer::ShutDown(bool bReInit) SAFE_DELETE(m_pRT); - // Confetti BEGIN: Igor Lobanchikov #if defined(OPENGL) #if !DXGL_FULL_EMULATION && !defined(CRY_USE_METAL) if (CV_r_multithreaded) @@ -1134,7 +1127,6 @@ void CD3D9Renderer::ShutDown(bool bReInit) #endif //!DXGL_FULL_EMULATION m_devInfo.Release(); #endif //defined(OPENGL) - // Confetti End: Igor Lobanchikov if (!bReInit) { @@ -1625,11 +1617,9 @@ WIN_HWND CD3D9Renderer::Init(int x, int y, int width, int height, unsigned int c bNativeResolution = false; #endif - // Confetti BEGIN: Igor Lobanchikov #if defined(OPENGL) && !DXGL_FULL_EMULATION && !defined(CRY_USE_METAL) DXGLInitialize(CV_r_multithreaded ? 4 : 0); #endif //defined(OPENGL) && !DXGL_FULL_EMULATION - // Confetti End: Igor Lobanchikov #ifdef D3DX_SDK_VERSION iLog->Log("D3DX_SDK_VERSION = %d", D3DX_SDK_VERSION); @@ -1744,12 +1734,10 @@ WIN_HWND CD3D9Renderer::Init(int x, int y, int width, int height, unsigned int c { CTexture::s_eTFZ = eTF_R16F; } - // Confetti BEGIN: Igor Lobanchikov if (!gcpRendD3D->UseHalfFloatRenderTargets()) { CTexture::s_eTFZ = eTF_R16U; } - // Confetti End: Igor Lobanchikov // Note: Not rolling this into the if statement above in case s_eTFZ is set to R16F on initialization if (CTexture::s_eTFZ != eTF_R32F) @@ -1852,14 +1840,12 @@ WIN_HWND CD3D9Renderer::Init(int x, int y, int width, int height, unsigned int c #include AZ_RESTRICTED_FILE(D3DSystem_cpp, AZ_RESTRICTED_PLATFORM) #endif - // Confetti BEGIN: Igor Lobanchikov #if defined(OPENGL) && !DXGL_FULL_EMULATION && !defined(CRY_USE_METAL) if (!m_pRT->IsRenderThread()) { DXGLUnbindDeviceContext(&GetDeviceContext(), !CV_r_multithreaded); } #endif //defined(OPENGL) && !DXGL_FULL_EMULATION - // Confetti End: Igor Lobanchikov if (!bShaderCacheGen) { @@ -2218,13 +2204,10 @@ bool SPixFormat::CheckSupport(D3DFormat Format, const char* szDescr, ETexture_Us if (nOptions & (D3D11_FORMAT_SUPPORT_TEXTURE2D | D3D11_FORMAT_SUPPORT_TEXTURECUBE)) { bool canAutoGenMips = (nOptions & D3D11_FORMAT_SUPPORT_MIP_AUTOGEN) != 0; - // Confetti BEGIN: Igor Lobanchikov bool canReadSRGB = CTexture::IsDeviceFormatSRGBReadable(Format); - // Confetti BEGIN: Igor Lobanchikov - // TODO: Igor: check if need to allow other compressed formats to stay here formats here too? + // TODO: check if need to allow other compressed formats to stay here formats here too? // Adding PVRTC format here improved the picture on iOS device. - // Confetti End: Igor Lobanchikov bool bCanMips = true; @@ -2241,9 +2224,7 @@ bool SPixFormat::CheckSupport(D3DFormat Format, const char* szDescr, ETexture_Us MaxHeight = D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION; #endif Desc = szDescr; - // Confetti BEGIN: Igor Lobanchikov BytesPerBlock = CTexture::BytesPerBlock(CTexture::TexFormatFromDeviceFormat(Format)); - // Confetti End: Igor Lobanchikov bCanDS = (nOptions & D3D11_FORMAT_SUPPORT_DEPTH_STENCIL) != 0; bCanRT = (nOptions & D3D11_FORMAT_SUPPORT_RENDER_TARGET) != 0; @@ -2305,11 +2286,9 @@ void SPixFormatSupport::CheckFormatSupport() m_FormatR8.CheckSupport(DXGI_FORMAT_R8_UNORM, "R8"); m_FormatR8S.CheckSupport(DXGI_FORMAT_R8_SNORM, "R8S"); m_FormatR16.CheckSupport(DXGI_FORMAT_R16_UNORM, "R16"); - // Confetti BEGIN: Igor Lobanchikov m_FormatR16U.CheckSupport(DXGI_FORMAT_R16_UINT, "R16U"); m_FormatR16G16U.CheckSupport(DXGI_FORMAT_R16G16_UINT, "R16G16U"); m_FormatR10G10B10A2UI.CheckSupport(DXGI_FORMAT_R10G10B10A2_UINT, "R10G10B10A2UI"); - // Confetti End: Igor Lobanchikov m_FormatR16F.CheckSupport(DXGI_FORMAT_R16_FLOAT, "R16F"); m_FormatR32F.CheckSupport(DXGI_FORMAT_R32_FLOAT, "R32F"); m_FormatR8G8.CheckSupport(DXGI_FORMAT_R8G8_UNORM, "R8G8"); @@ -2364,7 +2343,6 @@ void SPixFormatSupport::CheckFormatSupport() m_FormatETC2A.CheckSupport(DXGI_FORMAT_ETC2A_UNORM, "ETC2A"); #endif //defined(OPENGL) - // Confetti BEGIN: Igor Lobanchikov (copied from CD3D9Renderer::OnD3D11CreateDevice by bosnichd) #ifdef CRY_USE_METAL m_FormatPVRTC2.CheckSupport(DXGI_FORMAT_PVRTC2_UNORM, "PVRTC2"); m_FormatPVRTC4.CheckSupport(DXGI_FORMAT_PVRTC4_UNORM, "PVRTC4"); @@ -2385,7 +2363,6 @@ void SPixFormatSupport::CheckFormatSupport() m_FormatASTC_12x10.CheckSupport(DXGI_FORMAT_ASTC_12x10_UNORM, "ASTC_12x10"); m_FormatASTC_12x12.CheckSupport(DXGI_FORMAT_ASTC_12x12_UNORM, "ASTC_12x12"); #endif - // Confetti End: Igor Lobanchikov (copied from CD3D9Renderer::OnD3D11CreateDevice by bosnichd) } void CD3D9Renderer::GetVideoMemoryUsageStats(size_t& vidMemUsedThisFrame, size_t& vidMemUsedRecently, bool bGetPoolsSizes) @@ -2460,19 +2437,15 @@ HRESULT CALLBACK CD3D9Renderer::OnD3D11CreateDevice(D3DDevice* pd3dDevice) rd->m_Features |= RFT_HW_INTEL; iLog->Log ("D3D Detected: intel video card"); } - // Confetti BEGIN: Igor Lobanchikov else if (rd->m_devInfo.AdapterDesc().VendorId == RenderCapabilities::s_gpuVendorIdARM) { rd->m_Features |= RFT_HW_ARM_MALI; iLog->Log ("D3D Detected: ARM (MALI) video card"); } - // Confetti End: Igor Lobanchikov - // Confetti BEGIN: Igor Lobanchikov #if defined(OPENGL) && !defined(CRY_USE_METAL) DXGLInitializeIHVSpecifix(); #endif - // Confetti End: Igor Lobanchikov } rd->m_nGPUs = min(rd->m_nGPUs, (uint32)MAX_GPU_NUM); @@ -2537,10 +2510,9 @@ HRESULT CALLBACK CD3D9Renderer::OnD3D11CreateDevice(D3DDevice* pd3dDevice) rd->m_Features |= RFT_HW_VERTEXTEXTURES; } - // Confetti BEGIN: Igor Lobanchikov #if defined(CRY_USE_METAL) || (defined(OPENGL_ES)) - // Igor: METAL Supports R32 RTs but it doesn't support blending for it. Cryengine uses blending to fix up depth. - // Igor: Disable R32 RT for metal for now. + // METAL Supports R32 RTs but it doesn't support blending for it. Cryengine uses blending to fix up depth. + // Disable R32 RT for metal for now. // Qualcomm's OpenGL ES 3.0 driver does not support R32F render targets. Disabling for all OpenGL ES 3.0 versions for the time being. // When bound as a render target, we get this error: // W/Adreno-ES20(12623): : GL_INVALID_OPERATION @@ -2578,7 +2550,6 @@ HRESULT CALLBACK CD3D9Renderer::OnD3D11CreateDevice(D3DDevice* pd3dDevice) #else rd->m_bDeviceSupportsTessellation = false; #endif - // Confetti End: Igor Lobanchikov rd->m_Features |= RFT_OCCLUSIONTEST; @@ -2597,7 +2568,6 @@ HRESULT CALLBACK CD3D9Renderer::OnD3D11CreateDevice(D3DDevice* pd3dDevice) rd->m_bDeviceSupportsFP16Separate = false; rd->m_bDeviceSupportsFP16Filter = true; - // Confetti BEGIN: Igor Lobanchikov #ifdef CRY_USE_METAL rd->m_FormatPVRTC2.CheckSupport(DXGI_FORMAT_PVRTC2_UNORM, "PVRTC2"); rd->m_FormatPVRTC4.CheckSupport(DXGI_FORMAT_PVRTC4_UNORM, "PVRTC4"); @@ -2618,7 +2588,6 @@ HRESULT CALLBACK CD3D9Renderer::OnD3D11CreateDevice(D3DDevice* pd3dDevice) rd->m_FormatASTC_12x10.CheckSupport(DXGI_FORMAT_ASTC_12x10_UNORM, "ASTC_12x10"); rd->m_FormatASTC_12x12.CheckSupport(DXGI_FORMAT_ASTC_12x12_UNORM, "ASTC_12x12"); #endif - // Confetti End: Igor Lobanchikov if (rd->m_hwTexFormatSupport.m_FormatBC1.IsValid() || rd->m_hwTexFormatSupport.m_FormatBC2.IsValid() || rd->m_hwTexFormatSupport.m_FormatBC3.IsValid()) { diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DTexture.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DTexture.cpp index f50e8eca43..59fb5d8634 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DTexture.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DTexture.cpp @@ -546,7 +546,7 @@ bool CTexture::IsDeviceFormatTypeless(D3DFormat nFormat) case DXGI_FORMAT_PVRTC2_TYPELESS: case DXGI_FORMAT_PVRTC4_TYPELESS: #endif - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) || defined(CRY_USE_METAL) case DXGI_FORMAT_ASTC_4x4_TYPELESS: case DXGI_FORMAT_ASTC_5x4_TYPELESS: @@ -563,7 +563,7 @@ bool CTexture::IsDeviceFormatTypeless(D3DFormat nFormat) case DXGI_FORMAT_ASTC_12x10_TYPELESS: case DXGI_FORMAT_ASTC_12x12_TYPELESS: #endif - // Confetti End: Igor Lobanchikov + return true; default: @@ -606,7 +606,7 @@ bool CTexture::IsDeviceFormatSRGBReadable(D3DFormat nFormat) case DXGI_FORMAT_PVRTC4_UNORM: return true; #endif - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) || defined(CRY_USE_METAL) case DXGI_FORMAT_ASTC_4x4_UNORM: return true; @@ -637,7 +637,7 @@ bool CTexture::IsDeviceFormatSRGBReadable(D3DFormat nFormat) case DXGI_FORMAT_ASTC_12x12_UNORM: return true; #endif - // Confetti End: Igor Lobanchikov + default: break; @@ -664,14 +664,14 @@ D3DFormat CTexture::DeviceFormatFromTexFormat(ETEX_Format eTF) return DXGI_FORMAT_R8_SNORM; case eTF_R16: return DXGI_FORMAT_R16_UNORM; - // Confetti BEGIN: Igor Lobanchikov + case eTF_R16U: return DXGI_FORMAT_R16_UINT; case eTF_R16G16U: return DXGI_FORMAT_R16G16_UINT; case eTF_R10G10B10A2UI: return DXGI_FORMAT_R10G10B10A2_UINT; - // Confetti End: Igor Lobanchikov + case eTF_R16F: return DXGI_FORMAT_R16_FLOAT; case eTF_R32F: @@ -752,7 +752,7 @@ D3DFormat CTexture::DeviceFormatFromTexFormat(ETEX_Format eTF) case eTF_ETC2A: return DXGI_FORMAT_ETC2A_UNORM; #endif //defined(OPENGL) - // Confetti BEGIN: Igor Lobanchikov + #ifdef CRY_USE_METAL case eTF_PVRTC2: return DXGI_FORMAT_PVRTC2_UNORM; @@ -789,7 +789,7 @@ D3DFormat CTexture::DeviceFormatFromTexFormat(ETEX_Format eTF) case eTF_ASTC_12x12: return DXGI_FORMAT_ASTC_12x12_UNORM; #endif - // Confetti End: Igor Lobanchikov + // only available as hardware format under DX9 case eTF_A8L8: @@ -843,7 +843,7 @@ D3DFormat CTexture::ConvertToSRGBFmt(D3DFormat fmt) return DXGI_FORMAT_ETC2A_UNORM_SRGB; #endif //defined(OPENGL) - // Confetti BEGIN: Igor Lobanchikov + #ifdef CRY_USE_METAL case DXGI_FORMAT_PVRTC2_UNORM: return DXGI_FORMAT_PVRTC2_UNORM_SRGB; @@ -880,7 +880,7 @@ D3DFormat CTexture::ConvertToSRGBFmt(D3DFormat fmt) case DXGI_FORMAT_ASTC_12x12_UNORM: return DXGI_FORMAT_ASTC_12x12_UNORM_SRGB; #endif - // Confetti End: Igor Lobanchikov + case DXGI_FORMAT_R10G10B10A2_UNORM: return DXGI_FORMAT_R10G10B10A2_UNORM; // AntonK: we don't need sRGB space for fp formats, because there is enough precision @@ -968,14 +968,14 @@ ETEX_Format CTexture::TexFormatFromDeviceFormat(D3DFormat nFormat) return eTF_R8S; case DXGI_FORMAT_R16_UNORM: return eTF_R16; - // Confetti BEGIN: Igor Lobanchikov + case DXGI_FORMAT_R16_UINT: return eTF_R16U; case DXGI_FORMAT_R16G16_UINT: return eTF_R16G16U; case DXGI_FORMAT_R10G10B10A2_UINT: return eTF_R10G10B10A2UI; - // Confetti End: Igor Lobanchikov + case DXGI_FORMAT_R16_FLOAT: return eTF_R16F; case DXGI_FORMAT_R16_TYPELESS: @@ -1100,7 +1100,7 @@ ETEX_Format CTexture::TexFormatFromDeviceFormat(D3DFormat nFormat) return eTF_ETC2A; #endif //defined(OPENGL) - // Confetti BEGIN: Igor Lobanchikov + #ifdef CRY_USE_METAL case DXGI_FORMAT_PVRTC2_TYPELESS: case DXGI_FORMAT_PVRTC2_UNORM: @@ -1169,7 +1169,7 @@ ETEX_Format CTexture::TexFormatFromDeviceFormat(D3DFormat nFormat) case DXGI_FORMAT_ASTC_12x12_UNORM_SRGB: return eTF_ASTC_12x12; #endif - // Confetti End: Igor Lobanchikov + // only available as hardware format under DX9 case DXGI_FORMAT_B8G8R8A8_TYPELESS: @@ -1438,7 +1438,7 @@ D3DFormat CTexture::ConvertToTypelessFmt(D3DFormat fmt) // todo: add missing formats if they found required - // Confetti BEGIN: Igor Lobanchikov + #ifdef CRY_USE_METAL case DXGI_FORMAT_PVRTC2_UNORM: case DXGI_FORMAT_PVRTC2_UNORM_SRGB: @@ -1506,7 +1506,7 @@ D3DFormat CTexture::ConvertToTypelessFmt(D3DFormat fmt) return DXGI_FORMAT_ASTC_12x12_TYPELESS; #endif - // Confetti End: Igor Lobanchikov + // No conversion on floating point format. case DXGI_FORMAT_R11G11B10_FLOAT: @@ -1637,7 +1637,7 @@ ETEX_Format CTexture::ClosestFormatSupported(ETEX_Format eTFDst, const SPixForma } return eTF_Unknown; - // Confetti BEGIN: Igor Lobanchikov + case eTF_R16U: if (rd->m_FormatR16U.IsValid()) { @@ -1661,7 +1661,7 @@ ETEX_Format CTexture::ClosestFormatSupported(ETEX_Format eTFDst, const SPixForma return eTF_R10G10B10A2UI; } return eTF_Unknown; - // Confetti End: Igor Lobanchikov + case eTF_R16F: if (rd->m_FormatR16F.IsValid()) @@ -1978,7 +1978,7 @@ ETEX_Format CTexture::ClosestFormatSupported(ETEX_Format eTFDst, const SPixForma } return eTF_Unknown; - // Confetti BEGIN: Igor Lobanchikov + #ifdef CRY_USE_METAL case eTF_PVRTC2: if (rd->m_FormatPVRTC2.IsValid()) @@ -2109,7 +2109,7 @@ ETEX_Format CTexture::ClosestFormatSupported(ETEX_Format eTFDst, const SPixForma } return eTF_Unknown; #endif - // Confetti End: Igor Lobanchikov + default: assert(0); @@ -2312,17 +2312,17 @@ bool CTexture::RT_CreateDeviceTexture(const byte* pData[6]) { //If we don't support texture views, and the user will primarily want an srgb view, then create the texture directly that way. //So when the srgb view is created it succeeds. - // Confetti BEGIN: Igor Lobanchikov + if (!RenderCapabilities::SupportsTextureViews() #ifdef CRY_USE_METAL - // Igor: for some reason Metal doesn't allow to reinterprete compressed format. + // for some reason Metal doesn't allow to reinterprete compressed format. // This might be perfectly ok if they didn't block sRGB/RGB view conversion which doesn't make much sence || GetBlockDim(m_eTFSrc) != Vec2i(1) #endif ) - // Confetti End: Igor Lobanchikov + { #if !defined(AZ_PLATFORM_APPLE_OSX) || defined(CRY_USE_METAL) // really only for OpenGL 4.1, metal should do this just fine D3DFmt = nFormatSRGB; @@ -2425,7 +2425,7 @@ bool CTexture::RT_CreateDeviceTexture(const byte* pData[6]) InitData[i].pSysMem = &src[nOffset]; if (m_eSrcTileMode == eTM_None) { - // Confetti BEGIN: Igor Lobanchikov + const Vec2i BlockDim = GetBlockDim(m_eTFSrc); if (BlockDim == Vec2i(1)) { @@ -2436,7 +2436,7 @@ bool CTexture::RT_CreateDeviceTexture(const byte* pData[6]) int blockSize = CImageExtensionHelper::BytesPerBlock(m_eTFSrc); InitData[i].SysMemPitch = (w + BlockDim.x - 1) / BlockDim.x * blockSize; } - // Confetti End: Igor Lobanchikov + //ignored InitData[i].SysMemSlicePitch = nSize; @@ -2492,10 +2492,10 @@ bool CTexture::RT_CreateDeviceTexture(const byte* pData[6]) D3DFmt = nFormatOrig; } - // Confetti BEGIN: Igor Lobanchikov - // Igor: force SRGB resource creation. + + // force SRGB resource creation. - // Igor: for some reason Metal doesn't allow to reinterprete compressed format. + // for some reason Metal doesn't allow to reinterprete compressed format. // This might be perfectly ok if they didn't block sRGB/RGB view conversion which doesn't make much sence const Vec2i BlockDim = GetBlockDim(m_eTFSrc); if ((m_nFlags & FT_USAGE_ALLOWREADSRGB) && (!RenderCapabilities::SupportsTextureViews() @@ -2508,7 +2508,7 @@ bool CTexture::RT_CreateDeviceTexture(const byte* pData[6]) m_bIsSRGB = true; #endif } - // Confetti End: Igor Lobanchikov + ////////////////////////////////////////////////////////////////////////// m_pDeviceShaderResource = static_cast (CreateDeviceResourceView(SResourceView::ShaderResourceView(m_eTFDst, 0, -1, 0, nMips, m_bIsSRGB, false))); @@ -3983,12 +3983,12 @@ void CTexture::RT_UpdateTextureRegion(const byte* data, int nX, int nY, int nZ, D3D11_BOX rc = {aznumeric_caster(nX), aznumeric_caster(nY), 0, aznumeric_caster(nX + USize), aznumeric_caster(nY + VSize), 1}; if (m_eTT == eTT_2D) { - // Confetti BEGIN: Igor Lobanchikov + if (GetBlockDim(m_eTFDst) == Vec2i(1)) { int nBPPSrc = CTexture::BytesPerBlock(eTFSrc); int nBPPDst = CTexture::BytesPerBlock(m_eTFDst); - // Confetti End: Igor Lobanchikov + if (nBPPSrc == nBPPDst) { int nRowPitch = CTexture::TextureDataSize(USize, 1, 1, 1, 1, eTFSrc); @@ -4009,10 +4009,10 @@ void CTexture::RT_UpdateTextureRegion(const byte* data, int nX, int nY, int nZ, rc.front = nZ; rc.back = nZ + ZSize; - // Confetti BEGIN: Igor Lobanchikov + int nBPPSrc = CTexture::BytesPerBlock(eTFSrc); int nBPPDst = CTexture::BytesPerBlock(m_eTFDst); - // Confetti End: Igor Lobanchikov + if (nBPPSrc == nBPPDst) { if (m_nFlags & FT_USAGE_DYNAMIC) @@ -4684,9 +4684,9 @@ void CTexture::GenerateCachedShadowMaps() // allocate texture directly for all cached cascades if (!CTexture::IsTextureExist(pTx) && nResolutions[i] > 0 && i < cachedCascadesCount) { - // Confetti BEGIN: Igor Lobanchikov + CryLog("Allocating shadow map cache %d x %d: %.2f MB", nResolutions[i], nResolutions[i], sqr(nResolutions[i]) * CTexture::BytesPerBlock(texFormat) / (1024.f * 1024.f)); - // Confetti End: Igor Lobanchikov + pTx->CreateRenderTarget(texFormat, Clr_FarPlane); } } diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DTexturesStreaming.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DTexturesStreaming.cpp index dd26c98324..c299b330ed 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DTexturesStreaming.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/D3DTexturesStreaming.cpp @@ -761,7 +761,7 @@ STexPoolItem* CTexture::StreamGetPoolItem(int nStartMip, int nMips, bool bShould } else { - // Confetti BEGIN: Igor Lobanchikov + int nMipW = Align(max(1, m_nWidth >> nMip), vMipAlign.x); int nPitch = 0; const int BlockDim = vMipAlign.x; @@ -774,7 +774,7 @@ STexPoolItem* CTexture::StreamGetPoolItem(int nStartMip, int nMips, bool bShould { nPitch = TextureDataSize(nMipW, 1, 1, 1, 1, m_eTFSrc); } - // Confetti End: Igor Lobanchikov + ti.m_pData[nSRIdx].pSysMem = md.DataArray; ti.m_pData[nSRIdx].SysMemPitch = nPitch; diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/CryDXGL.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/CryDXGL.cpp index f41b63d157..5126e2af8d 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/CryDXGL.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/CryDXGL.cpp @@ -24,11 +24,11 @@ #include "Interfaces/CCryDXGLGIFactory.hpp" #include "Implementation/GLShader.hpp" #include "Implementation/GLDevice.hpp" -// Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) #include "Implementation/GLView.hpp" #endif -// Confetti End: Igor Lobanchikov + template HRESULT CreateDXGIFactoryInternal(REFIID riid, void** ppFactory) @@ -293,7 +293,7 @@ DXGL_API void DXGLProfileLabel(const char* szName) } #endif //DXGL_PROFILE_USE_GREMEDY_STRING_MARKER && DXGL_EXTENSION_LOADER #if DXGL_PROFILE_USE_KHR_DEBUG && DXGL_SUPPORT_DEBUG_OUTPUT - // Confetti BEGIN: Igor Lobanchikov + { if (glDebugMessageInsert) { @@ -306,7 +306,7 @@ DXGL_API void DXGLProfileLabel(const char* szName) } #endif } - // Confetti End: Igor Lobanchikov + #endif //DXGL_PROFILE_USE_KHR_DEBUG && DXGL_SUPPORT_DEBUG_OUTPUT } @@ -319,7 +319,7 @@ DXGL_API void DXGLProfileLabelPush(const char* szName) } #endif //DXGL_PROFILE_USE_GREMEDY_STRING_MARKER && DXGL_EXTENSION_LOADER #if DXGL_PROFILE_USE_KHR_DEBUG && DXGL_SUPPORT_DEBUG_OUTPUT - // Confetti BEGIN: Igor Lobanchikov + { if (glPushDebugGroup) { @@ -332,7 +332,7 @@ DXGL_API void DXGLProfileLabelPush(const char* szName) } #endif } - // Confetti End: Igor Lobanchikov + #endif //DXGL_PROFILE_USE_KHR_DEBUG && DXGL_SUPPORT_DEBUG_OUTPUT #if defined(AZ_PLATFORM_APPLE_OSX) glPushGroupMarkerEXT(0, szName); @@ -348,7 +348,7 @@ DXGL_API void DXGLProfileLabelPop(const char* szName) } #endif //DXGL_PROFILE_USE_GREMEDY_STRING_MARKER && DXGL_EXTENSION_LOADER #if DXGL_PROFILE_USE_KHR_DEBUG && DXGL_SUPPORT_DEBUG_OUTPUT - // Confetti BEGIN: Igor Lobanchikov + { if (glPopDebugGroup) { @@ -361,7 +361,7 @@ DXGL_API void DXGLProfileLabelPop(const char* szName) } #endif } - // Confetti End: Igor Lobanchikov + #endif //DXGL_PROFILE_USE_KHR_DEBUG && DXGL_SUPPORT_DEBUG_OUTPUT #if defined(AZ_PLATFORM_APPLE_OSX) glPopGroupMarkerEXT(); @@ -384,7 +384,7 @@ inline CCryDXGLDeviceContext* GetDXGLDeviceContext(ID3D11DeviceContext* pDeviceC #if !DXGL_FULL_EMULATION -// Confetti BEGIN: Igor Lobanchikov + #if defined(OPENGL_ES) void DXGLSetColorDontCareActions(ID3D11RenderTargetView* const rtv, bool const loadDontCare, @@ -457,7 +457,7 @@ void DXGLInitializeIHVSpecifix() { NCryOpenGL::SGlobalConfig::SetIHVDefaults(); } -// Confetti End: Igor Lobanchikov + void DXGLInitialize(uint32 uNumSharedContexts) { diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/CryDXGL.hpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/CryDXGL.hpp index 4d7be32b1a..c205ebdbe8 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/CryDXGL.hpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/CryDXGL.hpp @@ -70,8 +70,7 @@ // TODO: Investigate what prevents framebuffer completeness in some framebuffers with depth stencil bigger than color buffers (which is ok according to the standard) #define CRY_OPENGL_DO_NOT_ALLOW_LARGER_RT -// Confetti BEGIN: Igor Lobanchikov -// Igor: need this because the engine needs to know if we are running GL ES 3.0 or GL ES 3.1 +// need this because the engine needs to know if we are running GL ES 3.0 or GL ES 3.1 #define DXGL_VERSION_32 320 /* DX 10.1 10.2 */ #define DXGL_VERSION_41 410 #define DXGL_VERSION_42 420 @@ -250,7 +249,6 @@ DXGL_EXTERN DXGL_API void DXGLProfileLabelPop(const char* szName); // DXGL Extensions //////////////////////////////////////////////////////////////////////////// -// Confetti BEGIN: Igor Lobanchikov & David Srour #if defined(OPENGL_ES) void DXGLSetColorDontCareActions(ID3D11RenderTargetView* const rtv, bool const loadDontCare = false, @@ -267,7 +265,6 @@ void DXGLTogglePLS(ID3D11DeviceContext* pDeviceContext, bool const enable); void DXGLInitializeIHVSpecifix(); -// Confetti End: Igor Lobanchikov #if !DXGL_FULL_EMULATION diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLContext.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLContext.cpp index 11cdedd74d..900b4fcfef 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLContext.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLContext.cpp @@ -63,10 +63,10 @@ namespace NCryOpenGL #endif RegisterConfigVariable("dxgl_min_frame_pool_size", &iMinFramePoolSize, 16); RegisterConfigVariable("dxgl_max_frame_pool_size", &iMaxFramePoolSize, 1024); - // Confetti BEGIN: Igor Lobanchikov - // Igor: we don't know yet what GPU we are running + + // we don't know yet what GPU we are running RegisterConfigVariable("dxgl_buffer_upload_mode", &iBufferUploadMode, 1); - // Confetti End: Igor Lobanchikov + #if DXGL_ENABLE_SHADER_TRACING RegisterConfigVariable("dxgl_shader_tracing_mode", &iShaderTracingMode, 0); RegisterConfigVariable("dxgl_shader_tracing_hash", &iShaderTracingHash, 0); @@ -75,7 +75,7 @@ namespace NCryOpenGL RegisterConfigVariable("dxgl_pixel_tracing_y", &iPixelTracingY, 0); #endif //DXGL_ENABLE_SHADER_TRACING } - // Confetti BEGIN: Igor Lobanchikov + void SGlobalConfig::SetIHVDefaults() { if (gRenDev->GetFeatures() & (RFT_HW_QUALCOMM | RFT_HW_ARM_MALI)) @@ -87,7 +87,7 @@ namespace NCryOpenGL iBufferUploadMode = 1; } } - // Confetti End: Igor Lobanchikov + //////////////////////////////////////////////////////////////////////////// // State management helper functions @@ -570,12 +570,12 @@ namespace NCryOpenGL GLintptr piDstOffset((GLintptr)pStreaming->m_uNextPosition); if (SGlobalConfig::iBufferUploadMode > 0) { - // Confetti BEGIN: Igor Lobanchikov :END + pContext->NamedBufferSubDataFast(pStreaming->m_kName, piDstOffset, (GLsizeiptr)uSize, pSrcData); } else { - // Confetti BEGIN: Igor Lobanchikov :END + GLvoid* pData( pContext->MapNamedBufferRangeFast( pStreaming->m_kName, @@ -583,7 +583,7 @@ namespace NCryOpenGL (GLsizeiptr)uStreamingSize, GL_MAP_WRITE_BIT | GL_MAP_UNSYNCHRONIZED_BIT)); cryMemcpy(pData, pSrcData, uSize); - // Confetti BEGIN: Igor Lobanchikov :END + pContext->UnmapNamedBufferFast(pStreaming->m_kName); } } @@ -593,7 +593,7 @@ namespace NCryOpenGL else if (pBuffer->m_bStreaming) { pBuffer->m_akContextCaches[uContextIndex].m_spFrame = NULL; - // Confetti BEGIN: Igor Lobanchikov :END + pContext->NamedBufferDataFast(pBuffer->m_kName, pBuffer->m_uSize, pBuffer->m_pSystemMemoryCopy, pBuffer->m_eUsage); } @@ -740,7 +740,7 @@ namespace NCryOpenGL } #endif //DXGL_SUPPORT_SHADER_IMAGES - // Confetti BEGIN: Igor Lobanchikov + #if DXGL_SUPPORT_SCISSOR_RECT_ARRAY for (uint32 uScissorRect = 0; uScissorRect < DXGL_NUM_SUPPORTED_SCISSOR_RECTS; ++uScissorRect) { @@ -749,7 +749,7 @@ namespace NCryOpenGL #else GetStateVar(GL_SCISSOR_BOX, m_kStateCache.m_akGLScissorData); #endif - // Confetti End: Igor Lobanchikov + return GetImplicitStateCache(m_kStateCache) && GetBlendCache(m_kStateCache.m_kBlend) && GetDepthStencilCache(m_kStateCache.m_kDepthStencil) && @@ -974,10 +974,10 @@ namespace NCryOpenGL #endif //DXGL_SUPPORT_CUBEMAP_ARRAYS }; - // Confetti BEGIN: Igor Lobanchikov + m_kStateCache.m_glActiveTexture = GL_TEXTURE0 + uUnit; glActiveTexture(m_kStateCache.m_glActiveTexture); - // Confetti End: Igor Lobanchikov + GLint iSamplerBinding; GetStateVar(GL_SAMPLER_BINDING, &iSamplerBinding); @@ -1135,7 +1135,7 @@ namespace NCryOpenGL #endif //!DXGLES GetStateVar(GL_PACK_ALIGNMENT, &kCache.m_iPackAlignment); - // Confetti BEGIN: Igor Lobanchikov :END + GetStateVar(GL_ACTIVE_TEXTURE, &kCache.m_glActiveTexture); #if DXGL_SUPPORT_TESSELLATION @@ -1557,7 +1557,7 @@ namespace NCryOpenGL pSamplerState = &kNullSamplerState; } - // Confetti BEGIN: Igor Lobanchikov + if (pTextureView != NULL && pTextureView->BindTextureUnit(pSamplerState, m_kTextureUnitContext, this, m_kStateCache.m_akTextureUnits[m_kStateCache.m_glActiveTexture - GL_TEXTURE0])) { @@ -1592,7 +1592,7 @@ namespace NCryOpenGL } } } - // Confetti End: Igor Lobanchikov + uint32 uTexReset; for (uTexReset = 0; uTexReset < m_kTextureUnitContext.m_kModifiedTextures.size(); ++uTexReset) @@ -1923,7 +1923,7 @@ namespace NCryOpenGL glVertexAttribDivisor(kAttrIter->m_uAttributeIndex, kAttrIter->m_uVertexAttribDivisor); } - // Confetti BEGIN: Igor Lobanchikov + GLsizei uStride(m_akInputAssemblerSlots[uSlot].m_uStride); GLvoid* pPointer(reinterpret_cast(static_cast(m_akInputAssemblerSlots[uSlot].m_uOffset + kAttrIter->m_uPointerOffset))); #if !DXGL_SUPPORT_DRAW_WITH_BASE_VERTEX @@ -1941,7 +1941,7 @@ namespace NCryOpenGL bUpdatePointer |= CACHE_VAR(kVertexAttribPointer.m_pPointer, pPointer); bUpdatePointer |= CACHE_VAR(kVertexAttribPointer.m_bInteger, static_cast(kAttrIter->m_bInteger ? GL_TRUE : GL_FALSE)); - // Igor: this cache is temporary disabled - doesn't work as expected. + // this cache is temporary disabled - doesn't work as expected. //if (bUpdatePointer) { if (!kAttrIter->m_bInteger) @@ -1964,7 +1964,7 @@ namespace NCryOpenGL pPointer); } } - // Confetti End: Igor Lobanchikov + } } } @@ -1988,7 +1988,7 @@ namespace NCryOpenGL } } - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) void CContext::FlushFrameBufferDontCareState(bool bOnBind) { @@ -1997,7 +1997,7 @@ namespace NCryOpenGL return; } - // Igor: discard the data of the old frame buffer if any. + // discard the data of the old frame buffer if any. { AZStd::vector drawBuffers; drawBuffers.reserve(SFrameBufferConfiguration::MAX_ATTACHMENTS); @@ -2117,7 +2117,7 @@ namespace NCryOpenGL return; } - // Igor: discard the data of the old frame buffer if any. + // discard the data of the old frame buffer if any. { GLuint uNumDrawBuffers = 0; @@ -2157,7 +2157,7 @@ namespace NCryOpenGL } } #endif - // Confetti End: Igor Lobanchikov + void CContext::FlushFrameBufferState() { @@ -2165,11 +2165,11 @@ namespace NCryOpenGL if (m_bFrameBufferStateDirty) { - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) FlushFrameBufferDontCareState(false); #endif - // Confetti End: Igor Lobanchikov + m_spFrameBuffer = AllocateFrameBuffer(m_kFrameBufferConfig); @@ -2197,19 +2197,19 @@ namespace NCryOpenGL } } - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) FlushFrameBufferDontCareState(true); #endif - // Confetti End: Igor Lobanchikov + m_bFrameBufferStateDirty = false; - // Confetti BEGIN: Igor Lobanchikov + #if defined(DXGL_USE_LAZY_CLEAR) FlushFrameBufferLazyClearState(); #endif - // Confetti End: Igor Lobanchikov + } } } @@ -2392,8 +2392,8 @@ namespace NCryOpenGL DXGL_SCOPED_PROFILE("CContext::BindReadFrameBuffer") if (CACHE_VAR(m_kStateCache.m_kReadFrameBuffer, kName)) { - // Confetti BEGIN: Igor Lobanchikov :END - // Igor: this improves ProjectLEO behaviour on Mali's firefly device but obviously slows down everything. + + // this improves ProjectLEO behaviour on Mali's firefly device but obviously slows down everything. // Please, keep this until the Mali's driver bug will be solved completely //glFinish(); @@ -2588,7 +2588,7 @@ namespace NCryOpenGL TViewportValue* pGLViewportIter(m_kStateCache.m_akViewportData); TDepthRangeValue* pGLDepthRangeIter(m_kStateCache.m_akDepthRangeData); const D3D11_VIEWPORT* pViewport; - // Confetti BEGIN: Igor Lobanchikov + bool bWantToSetDepthRange = false; for (pViewport = pViewports; pViewport < pViewports + uNumViewports; ++pViewport) { @@ -2627,7 +2627,7 @@ namespace NCryOpenGL m_kStateCache.m_akDepthRangeData[1]); } #endif - // Confetti End: Igor Lobanchikov + } void CContext::SetScissorRects(uint32 uNumRects, const D3D11_RECT* pRects) @@ -2640,7 +2640,7 @@ namespace NCryOpenGL uNumRects = DXGL_NUM_SUPPORTED_SCISSOR_RECTS; } - // Confetti BEGIN: Igor Lobanchikov + GLint* piScissorIter(m_kStateCache.m_akGLScissorData); const D3D11_RECT* pRect; bool bWantToUpdateScissors = false; @@ -2675,7 +2675,7 @@ namespace NCryOpenGL m_kStateCache.m_akGLScissorData[3]); } #endif - // Confetti End: Igor Lobanchikov + } uint32 MatchColorAttachmentIndex(SOutputMergerView* pView, SFrameBufferConfiguration& kFrameBufferConfig) @@ -2768,31 +2768,31 @@ namespace NCryOpenGL pRenderTargetView->m_kCreationFence.IssueWait(this); - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) NCryOpenGL::SOutputMergerTextureView* somtv = pRenderTargetView->AsSOutputMergerTextureView(); if (somtv) { NCryOpenGL::STexture* tex = somtv->m_pTexture; CRY_ASSERT(tex); - // Igor: reset invalid state since clear makes the resource valid again + // reset invalid state since clear makes the resource valid again tex->m_bColorWasInvalidatedWhenUnbound = false; } #endif - // Confetti End: Igor Lobanchikov + // First see if the view is in the current frame buffer configuration color attachments uint32 uAttachment(MatchColorAttachmentIndex(pRenderTargetView, m_kFrameBufferConfig)); - // Confetti BEGIN: Igor Lobanchikov + #if defined(DXGL_USE_LAZY_CLEAR) - // Igor: this will force lazy clear if the next draw call will switch the rendering layout + // this will force lazy clear if the next draw call will switch the rendering layout if (m_bFrameBufferStateDirty) { uAttachment = SFrameBufferConfiguration::MAX_COLOR_ATTACHMENTS; } #endif - // Confetti End: Igor Lobanchikov + if (uAttachment != SFrameBufferConfiguration::MAX_COLOR_ATTACHMENTS) { @@ -2800,7 +2800,7 @@ namespace NCryOpenGL } else { - // Confetti BEGIN: Igor Lobanchikov + #if defined(DXGL_USE_LAZY_CLEAR) SOutputMergerTextureView* pTextureView = pRenderTargetView ? pRenderTargetView->AsSOutputMergerTextureView() : NULL; STexture* resToClear = pTextureView ? pTextureView->m_pTexture : NULL; @@ -2830,9 +2830,9 @@ namespace NCryOpenGL return; } - // Igor: fallback to old behaviour + // fallback to old behaviour #endif - // Confetti End: Igor Lobanchikov + SFrameBufferPtr spClearFrameBuffer(GetCompatibleColorAttachmentFrameBuffer(pRenderTargetView, uAttachment, this)); @@ -2945,14 +2945,14 @@ namespace NCryOpenGL bClearStencil = false; } - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) NCryOpenGL::SOutputMergerTextureView* somtv = pDepthStencilView->AsSOutputMergerTextureView(); if (somtv) { NCryOpenGL::STexture* tex = somtv->m_pTexture; CRY_ASSERT(tex); - // Igor: reset invalid state since clear makes the resource valid again + // reset invalid state since clear makes the resource valid again if (bClearDepth) { tex->m_bDepthWasInvalidatedWhenUnbound = false; @@ -2963,7 +2963,7 @@ namespace NCryOpenGL } } #endif - // Confetti End: Igor Lobanchikov + // First see if the view is in the current frame buffer configuration depth/stencil attachments bool shouldFlushFrameBufferState = MatchDepthStencilAttachment(pDepthStencilView, bClearDepth, bClearStencil, m_kFrameBufferConfig); @@ -2978,7 +2978,7 @@ namespace NCryOpenGL } else { - // Confetti BEGIN: Igor Lobanchikov + #if defined(DXGL_USE_LAZY_CLEAR) SOutputMergerTextureView* pTextureView = pDepthStencilView ? pDepthStencilView->AsSOutputMergerTextureView() : NULL; STexture* resToClear = pTextureView ? pTextureView->m_pTexture : NULL; @@ -3026,7 +3026,7 @@ namespace NCryOpenGL return; } #endif - // Confetti End: Igor Lobanchikov + SFrameBufferPtr spClearFrameBuffer(GetCompatibleDepthStencilAttachmentFrameBuffer(pDepthStencilView, bClearDepth, bClearStencil, this)); @@ -3067,7 +3067,7 @@ namespace NCryOpenGL // Make sure the stencil mask includes depth writing as glClearBufferf[i|v] are masked as well if (clearStencil) { - // Confetti BEGIN: Igor Lobanchikov + if (m_kStateCache.m_kDepthStencil.m_kStencilFrontFaces.m_uStencilWriteMask != 0xFF) { glStencilMaskSeparate(GL_FRONT, 0xFF); @@ -3076,7 +3076,7 @@ namespace NCryOpenGL { glStencilMaskSeparate(GL_BACK, 0xFF); } - // Confetti End: Igor Lobanchikov + } // Make sure that scissor test is disabled as glClearBufferf[i|v] is affected as well @@ -3124,12 +3124,12 @@ namespace NCryOpenGL // Restore the stencil mask as specified by the depth stencil state if (clearStencil) { - // Confetti BEGIN: Igor Lobanchikov :END + if (m_kStateCache.m_kDepthStencil.m_kStencilFrontFaces.m_uStencilWriteMask != 0xFF) { glStencilMaskSeparate(GL_FRONT, m_kStateCache.m_kDepthStencil.m_kStencilFrontFaces.m_uStencilWriteMask); } - // Confetti BEGIN: Igor Lobanchikov :END + if (m_kStateCache.m_kDepthStencil.m_kStencilBackFaces.m_uStencilWriteMask != 0xFF) { glStencilMaskSeparate(GL_BACK, m_kStateCache.m_kDepthStencil.m_kStencilBackFaces.m_uStencilWriteMask); diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLContext.hpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLContext.hpp index d1d0431742..0dade14212 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLContext.hpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLContext.hpp @@ -93,9 +93,9 @@ namespace NCryOpenGL #endif static void RegisterVariables(); - // Confetti BEGIN: Igor Lobanchikov + static void SetIHVDefaults(); - // Confetti End: Igor Lobanchikov + }; // The reference values for the stencil operations @@ -201,7 +201,7 @@ namespace NCryOpenGL GLuint m_auVertexAttribDivisors[MAX_VERTEX_ATTRIBUTES]; - // Confetti BEGIN: Igor Lobanchikov + struct SVertexAttribPointer { GLint m_iSize; @@ -228,7 +228,7 @@ namespace NCryOpenGL } }; SVertexAttribPointer m_auVertexAttribPointer[MAX_VERTEX_ATTRIBUTES]; - // Confetti End: Igor Lobanchikov + struct SVertexAttribFormat { @@ -379,7 +379,7 @@ namespace NCryOpenGL GLint m_iPackImageHeight; #endif //!DXGLES GLint m_iPackAlignment; - // Confetti BEGIN: Igor Lobanchikov :END + GLenum m_glActiveTexture; }; @@ -397,7 +397,7 @@ namespace NCryOpenGL SImageUnitCache m_akImageUnits[MAX_IMAGE_UNITS]; #endif //DXGL_SUPPORT_SHADER_IMAGES SInputAssemblerCache m_kInputAssembler; - // Confetti BEGIN: Igor Lobanchikov :END + GLint m_akGLScissorData[DXGL_NUM_SUPPORTED_SCISSOR_RECTS * 4]; }; @@ -651,12 +651,12 @@ namespace NCryOpenGL const CResourceName& GetCopyPixelBuffer() { return m_kCopyPixelBuffer; } #endif - // Confetti BEGIN: Igor Lobanchikov + inline void NamedBufferDataFast(CResourceName kBufferName, GLsizeiptr iSize, const void* pData, GLenum eUsage); inline void NamedBufferSubDataFast(CResourceName kBufferName, GLintptr iOffset, GLsizeiptr iSize, const void* pData); inline GLvoid* MapNamedBufferRangeFast(CResourceName kBufferName, GLintptr iOffset, GLsizeiptr iLength, GLbitfield uAccess); inline GLboolean UnmapNamedBufferFast(CResourceName kBufferName); - // Confetti End: Igor Lobanchikov + // Confetti Begin: David Srour // Since binding framebuffers is deferred, we have to ensure that enabling/disabling PLS extension comes after binings. @@ -719,14 +719,14 @@ namespace NCryOpenGL void FlushShaderTracingState(); #endif - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) void FlushFrameBufferDontCareState(bool bOnBind); #endif #if defined(DXGL_USE_LAZY_CLEAR) void FlushFrameBufferLazyClearState(); #endif - // Confetti End: Igor Lobanchikov + void SwitchFrame(); @@ -855,7 +855,7 @@ namespace NCryOpenGL GLBlitFramebufferHelper m_blitHelper; }; - // Confetti BEGIN: Igor Lobanchikov + template inline bool RefreshCache(T& kCache, T kState) { @@ -922,7 +922,7 @@ namespace NCryOpenGL return glUnmapBuffer(GL_COPY_WRITE_BUFFER); #endif } - // Confetti End: Igor Lobanchikov + // Confetti Begin: David Srour inline void CContext::TogglePLS(bool const enable) diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLDevice.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLDevice.cpp index 01550e48b5..31851e96e7 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLDevice.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLDevice.cpp @@ -2505,13 +2505,13 @@ namespace NCryOpenGL void DXGL_DEBUG_CALLBACK_CONVENTION DebugCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char* message, void* userParam) { - // Confetti BEGIN: Igor Lobanchikov - // Igor: this filters out the debug messages earlier saving the performance which might be broken by excessive string creation. + + // this filters out the debug messages earlier saving the performance which might be broken by excessive string creation. if ((type == GL_DEBUG_SEVERITY_LOW) || (type == GL_DEBUG_SEVERITY_NOTIFICATION)) { return; } - // Confetti End: Igor Lobanchikov + ::string errorMessage, sourceStr, typeStr, severityStr; ELogSeverity eLogSeverity = eLS_Warning; diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLFeatures.hpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLFeatures.hpp index 70ec2d4e1d..580a5340ee 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLFeatures.hpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLFeatures.hpp @@ -126,11 +126,11 @@ # define DXGL_ENABLE_COMPUTE_SHADERS 0 #endif -// Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) #define USE_FAST_NAMED_APPROXIMATION #endif -// Confetti End: Igor Lobanchikov + enum { diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLFormat.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLFormat.cpp index bf12842382..53dbb12077 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLFormat.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLFormat.cpp @@ -299,7 +299,7 @@ namespace NCryOpenGL _COMPR_TEX(BC7_UNORM_SRGB, GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB, GL_RGBA, 4, 4, 1, 16, true) #endif //DXGL_SUPPORT_BPTC #endif //!DXGLES - // Confetti BEGIN: Igor Lobanchikov + // | FORMAT_ID | GL_INTERNAL_FORMAT | GL_FORMAT | BLOCK | SRGB | // | | | | X | Y | Z | BYTES | | #if defined(ANDROID) && DXGLES @@ -332,7 +332,7 @@ namespace NCryOpenGL _COMPR_TEX(ASTC_12x12_UNORM, GL_COMPRESSED_RGBA_ASTC_12x12_KHR, GL_RGBA, 12, 12, 1, 16, false) _COMPR_TEX(ASTC_12x12_UNORM_SRGB, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, GL_RGBA, 12, 12, 1, 16, true) #endif - // Confetti End: Igor Lobanchikov + #undef _TEX #undef _UNCOMPR_TEX diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLResource.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLResource.cpp index 446619a5a4..b25b43825e 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLResource.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLResource.cpp @@ -961,7 +961,7 @@ namespace NCryOpenGL #if DXGL_USE_PBO_FOR_STAGING_TEXTURES uint32 uSubResource(D3D11CalcSubresource(kSubID.m_iMipLevel, kSubID.m_uElement, pTexture->m_uNumMipLevels)); - // Confetti BEGIN: Igor Lobanchikov :END + GLvoid* pvMappedData(pContext->MapNamedBufferRangeFast(pTexture->m_akPixelBuffers[uSubResource], 0, (GLsizei)kDstLayout.m_uTextureSize, GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_RANGE_BIT)); uint8* puDstData(static_cast(pvMappedData) + kPackedRange.m_kOffset.x); #else @@ -986,7 +986,7 @@ namespace NCryOpenGL } #if DXGL_USE_PBO_FOR_STAGING_TEXTURES - // Confetti BEGIN: Igor Lobanchikov :END + pContext->UnmapNamedBufferFast(pTexture->m_akPixelBuffers[uSubResource]); #endif //DXGL_USE_PBO_FOR_STAGING_TEXTURES } @@ -1009,12 +1009,12 @@ namespace NCryOpenGL GLint iPixelBufferName(pTexture->m_akPixelBuffers[uSubResource].GetName()); if (bDownload) { - // Confetti BEGIN: Igor Lobanchikov :END + kMappedSubTex.m_pBuffer = static_cast(pContext->MapNamedBufferRangeFast(pTexture->m_akPixelBuffers[uSubResource], 0, kPackedLayout.m_uTextureSize, GL_MAP_READ_BIT)); } else { - // Confetti BEGIN: Igor Lobanchikov :END + kMappedSubTex.m_pBuffer = static_cast(pContext->MapNamedBufferRangeFast(pTexture->m_akPixelBuffers[uSubResource], 0, kPackedLayout.m_uTextureSize, GL_MAP_WRITE_BIT)); } #else @@ -1026,12 +1026,12 @@ namespace NCryOpenGL kMappedSubTex.m_uDataOffset = 0; } - // Confetti BEGIN: Igor Lobanchikov :END + static void Unmap(STexture* pTexture, STexSubresourceID kSubID, const SMappedSubTexture& kMappedSubTex, CContext* pContext, const SGIFormatInfo*) { #if DXGL_USE_PBO_FOR_STAGING_TEXTURES uint32 uSubResource(D3D11CalcSubresource(kSubID.m_iMipLevel, kSubID.m_uElement, pTexture->m_uNumMipLevels)); - // Confetti BEGIN: Igor Lobanchikov :END + pContext->UnmapNamedBufferFast(pTexture->m_akPixelBuffers[uSubResource]); #endif //DXGL_USE_PBO_FOR_STAGING_TEXTURES } @@ -1697,7 +1697,7 @@ namespace NCryOpenGL #endif //DXGL_SUPPORT_STENCIL_TEXTURES } - // Confetti BEGIN: Igor Lobanchikov + void STextureState::ApplyFormatMode(GLenum eTarget) { GLint aiSwizzleRGBA[4]; @@ -1760,7 +1760,7 @@ namespace NCryOpenGL #endif } - // Confetti End: Igor Lobanchikov + // Default value of -1000 is from the OpenGL spec and is the default value // it uses when the min LOD is not specified. @@ -1787,11 +1787,11 @@ namespace NCryOpenGL #if DXGL_FULL_EMULATION m_uNumElements = max(1u, m_uNumElements); #endif //DXGL_FULL_EMULATION - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) ResetDontCareActionFlags(); #endif - // Confetti End: Igor Lobanchikov + } STexture::~STexture() @@ -1889,7 +1889,7 @@ namespace NCryOpenGL return CreateOutputMergerView(kConfiguration, pContext); } - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) void STexture::ResetDontCareActionFlags() { @@ -1913,7 +1913,7 @@ namespace NCryOpenGL m_bDepthStoreDontCareWhenUnbound = m_bDepthStoreDontCare; m_bStencilStoreDontCareWhenUnbound = m_bStencilStoreDontCare; - // Igor: open gl marks buffer invalid until it is cleared or something is rendered into it. + // open gl marks buffer invalid until it is cleared or something is rendered into it. // If you bump into one of these asserts this means that you've dsicarded buffer content on // resolve and try to restore. Although this behaviur is perfectly ok for Metal // this won't work for GL. Render buffer won't be restored and might be either cleared @@ -1944,7 +1944,7 @@ namespace NCryOpenGL m_bStencilStoreDontCareWhenUnbound = false; } #endif - // Confetti End: Igor Lobanchikov + #if DXGL_SUPPORT_APITRACE && defined(WIN32) @@ -3031,7 +3031,7 @@ namespace NCryOpenGL #endif } - // Confetti BEGIN: Igor Lobanchikov + void NamedBufferSubDataAsyncFast(CContext* pContext, CResourceName kBufferName, GLintptr iOffset, GLsizeiptr iSize, const GLvoid* pvData) { #if defined(glNamedBufferSubDataEXT) || !defined(USE_FAST_NAMED_APPROXIMATION) @@ -3059,7 +3059,7 @@ namespace NCryOpenGL #endif #endif } - // Confetti End: Igor Lobanchikov + struct SDefaultBufferImpl { @@ -3072,7 +3072,7 @@ namespace NCryOpenGL assert(uSubresource == 0); - // Confetti BEGIN: Igor Lobanchikov + if (pDstBox != NULL) { NamedBufferSubDataAsyncFast(pContext, pBuffer->m_kName, pDstBox->left, pDstBox->right - pDstBox->left, pSrcData); @@ -3081,7 +3081,7 @@ namespace NCryOpenGL { NamedBufferSubDataAsyncFast(pContext, pBuffer->m_kName, 0, pBuffer->m_uSize, pSrcData); } - // Confetti End: Igor Lobanchikov + } }; @@ -3115,7 +3115,7 @@ namespace NCryOpenGL { uAccess |= GL_MAP_PERSISTENT_BIT; } - // Confetti BEGIN: Igor Lobanchikov :END + pMappedResource->pData = pContext->MapNamedBufferRangeFast(pBuffer->m_kName, (GLintptr)uOffset, (GLsizeiptr)uSize, uAccess); } else @@ -3123,7 +3123,7 @@ namespace NCryOpenGL if (eMapType == D3D11_MAP_WRITE_NO_OVERWRITE) { pBuffer->m_bMapped = true; - // Confetti BEGIN: Igor Lobanchikov :END + pMappedResource->pData = pContext->MapNamedBufferRangeFast(pBuffer->m_kName, (GLintptr)uOffset, (GLsizeiptr)uSize, GL_MAP_WRITE_BIT | GL_MAP_UNSYNCHRONIZED_BIT); } else @@ -3136,15 +3136,15 @@ namespace NCryOpenGL { pBuffer->m_bMapped = false; pMappedResource->pData = pBuffer->m_pSystemMemoryCopy; - // Confetti BEGIN: Igor Lobanchikov :END + pContext->NamedBufferDataFast(pBuffer->m_kName, pBuffer->m_uSize, NULL, pBuffer->m_eUsage); } else { pBuffer->m_bMapped = true; - // Igor: when GL_MAP_INVALIDATE_BUFFER_BIT is set GL_MAP_UNSYNCHRONIZED_BIT will be ignored. + // when GL_MAP_INVALIDATE_BUFFER_BIT is set GL_MAP_UNSYNCHRONIZED_BIT will be ignored. // Remove GL_MAP_UNSYNCHRONIZED_BIT to reduce Qualcomm driver's debug spew - // Confetti BEGIN: Igor Lobanchikov :END + pMappedResource->pData = pContext->MapNamedBufferRangeFast(pBuffer->m_kName, (GLintptr)uOffset, (GLsizeiptr)uSize, GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT); } } @@ -3167,7 +3167,7 @@ namespace NCryOpenGL return MapBufferRange(pBuffer, (size_t)0, (size_t)pBuffer->m_uSize, eMapType, uMapFlags, pMappedResource, pContext); } - // Confetti BEGIN: Igor Lobanchikov :END + static void UnmapBuffer(SResource* pResource, UINT Subresource, CContext* pContext) { DXGL_SCOPED_PROFILE("SDynamicBufferImpl::UnmapBuffer") @@ -3185,20 +3185,20 @@ namespace NCryOpenGL if (uSize > 0) { - // Confetti BEGIN: Igor Lobanchikov :END + NamedBufferSubDataAsyncFast(pContext, pBuffer->m_kName, uOffset, uSize, pBuffer->m_kDynamicCopy.m_pData + uOffset); } #else if (pBuffer->m_bMapped) { - // Confetti BEGIN: Igor Lobanchikov :END + pContext->UnmapNamedBufferFast(pBuffer->m_kName); pBuffer->m_bMapped = false; } else { // This was mapped with D3D11_MAP_WRITE_DISCARD - orphan the current storage and upload the system memory buffer - // Confetti BEGIN: Igor Lobanchikov :END + NamedBufferSubDataAsyncFast(pContext, pBuffer->m_kName, pBuffer->m_uMapOffset, pBuffer->m_uMapSize, pBuffer->m_pSystemMemoryCopy); } #endif @@ -3224,7 +3224,7 @@ namespace NCryOpenGL uDstOffset = 0; uDstSize = pBuffer->m_uSize; } - // Confetti BEGIN: Igor Lobanchikov :END + NamedBufferSubDataAsyncFast(pContext, pBuffer->m_kName, uDstOffset, uDstSize, pSrcData); cryMemcpy(pBuffer->m_pSystemMemoryCopy, static_cast(pSrcData) + uDstOffset, uDstSize); } diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLResource.hpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLResource.hpp index d48f3281bd..22cfb4c2b2 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLResource.hpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLResource.hpp @@ -292,7 +292,7 @@ namespace NCryOpenGL } }; - // Confetti BEGIN: Igor Lobanchikov :END + struct STextureUnitCache; struct STextureState @@ -305,10 +305,10 @@ namespace NCryOpenGL TSwizzleMask m_uSwizzleMask; void ApplyFormatMode(GLuint uTexture, GLenum eTarget); - // Confetti BEGIN: Igor Lobanchikov + void ApplyFormatMode(GLenum eTarget); void Apply(GLuint uTexture, GLenum eTarget, const STextureUnitCache& kCurrentUnitCache); - // Confetti End: Igor Lobanchikov + bool operator==(const STextureState& kOther) const { @@ -416,13 +416,13 @@ namespace NCryOpenGL void SetMinLod(float minLod); float GetMinLod() const { return m_fMinLod; } - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) void ResetDontCareActionFlags(); void UpdateDontCareActionFlagsOnBound(); void UpdateDontCareActionFlagsOnUnbound(); #endif - // Confetti End: Igor Lobanchikov + typedef std::vector TMappedSubTextures; #if !DXGL_SUPPORT_COPY_IMAGE @@ -467,7 +467,7 @@ namespace NCryOpenGL SOutputMergerTextureView* m_pOutputMergerViewsHead; SShaderTextureView* m_pBoundModifier; // NULL if no SRV for this texture has bound custom texture parameters - // Confetti BEGIN: Igor Lobanchikov + #if defined(DXGL_USE_LAZY_CLEAR) float m_ClearColor[4]; _smart_ptr m_spViewToClear; @@ -491,7 +491,7 @@ namespace NCryOpenGL bool m_bDepthWasInvalidatedWhenUnbound; bool m_bStencilWasInvalidatedWhenUnbound; #endif - // Confetti End: Igor Lobanchikov + private: // Making this private so that users have to use the Set/Get since there // is a corresponding gl call that needs to be called when this variable diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLState.hpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLState.hpp index 1a15f0cc47..34d8028597 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLState.hpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLState.hpp @@ -126,7 +126,7 @@ namespace NCryOpenGL inline bool operator==(SColorMask kLeft, SColorMask kRight) { - // Confetti BEGIN: Igor Lobanchikov :END + return 0 == memcmp(kLeft.m_abRGBA, kRight.m_abRGBA, sizeof(kRight.m_abRGBA)); } diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLView.cpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLView.cpp index 83ba6ba891..0462cc3335 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLView.cpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLView.cpp @@ -134,7 +134,7 @@ namespace NCryOpenGL } } - // Confetti BEGIN: Igor Lobanchikov :END + bool SShaderTextureBasedView::BindTextureUnit(SSamplerState* pSamplerState, STextureUnitContext& kContext, CContext* pContext, const STextureUnitCache& kCurrentUnitCache) { DXGL_ERROR("Cannot bind this type of texture based view to a texture unit"); @@ -201,7 +201,7 @@ namespace NCryOpenGL return true; } - // Confetti BEGIN: Igor Lobanchikov :END + bool SShaderTextureBufferView::BindTextureUnit(SSamplerState* pSamplerState, STextureUnitContext& kContext, CContext* pContext, const STextureUnitCache& kCurrentUnitCache) { kContext.m_kCurrentUnitState.m_kTextureName = m_kName; @@ -354,7 +354,7 @@ namespace NCryOpenGL return false; } - // Confetti BEGIN: Igor Lobanchikov :END + bool SShaderTextureView::BindTextureUnit(SSamplerState* pSamplerState, STextureUnitContext& kContext, CContext* pContext, const STextureUnitCache& kCurrentUnitCache) { kContext.m_kCurrentUnitState.m_uSampler = m_kConfiguration.m_uNumMipLevels > 1 ? @@ -376,7 +376,7 @@ namespace NCryOpenGL { if (m_pTexture->m_kCache != m_kViewState) { - // Confetti BEGIN: Igor Lobanchikov :END + m_kViewState.Apply(m_pTexture->m_kName.GetName(), m_kConfiguration.m_eTarget, kCurrentUnitCache); m_pTexture->m_kCache = m_kViewState; } @@ -678,7 +678,7 @@ namespace NCryOpenGL { } - // Confetti BEGIN: Igor Lobanchikov :END + bool SDefaultFrameBufferShaderTextureView::BindTextureUnit(SSamplerState* pSamplerState, STextureUnitContext& kContext, CContext* pContext, const STextureUnitCache& kCurrentUnitCache) { SDefaultFrameBufferTexture* pDefaultFrameBufferTexture(static_cast(m_pTexture)); @@ -688,7 +688,7 @@ namespace NCryOpenGL m_bUsesTexture = true; } pDefaultFrameBufferTexture->OnRead(pContext); - // Confetti BEGIN: Igor Lobanchikov :END + return SShaderTextureView::BindTextureUnit(pSamplerState, kContext, pContext, kCurrentUnitCache); } diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLView.hpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLView.hpp index bbda564e9f..ff9bc62a39 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLView.hpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXGL/Implementation/GLView.hpp @@ -171,7 +171,7 @@ namespace NCryOpenGL SShaderTextureBasedView(Type eType); virtual ~SShaderTextureBasedView(); - // Confetti BEGIN: Igor Lobanchikov :END + virtual bool BindTextureUnit(SSamplerState* pSamplerState, STextureUnitContext& kContext, CContext* pContext, const STextureUnitCache& kCurrentUnitCache); virtual bool GenerateMipmaps(CContext* pContext); @@ -188,7 +188,7 @@ namespace NCryOpenGL bool Init(SBuffer* pBuffer, CContext* pContext); - // Confetti BEGIN: Igor Lobanchikov :END + virtual bool BindTextureUnit(SSamplerState* pSamplerState, STextureUnitContext& kContext, CContext* pContext, const STextureUnitCache& kCurrentUnitCache); SBuffer* m_pBuffer; @@ -205,7 +205,7 @@ namespace NCryOpenGL bool Init(STexture* pTexture, CContext* pContext); bool CreateUniqueView(CContext* pContext); - // Confetti BEGIN: Igor Lobanchikov :END + virtual bool BindTextureUnit(SSamplerState* pSamplerState, STextureUnitContext& kContext, CContext* pContext, const STextureUnitCache& kCurrentUnitCache); virtual bool GenerateMipmaps(CContext* pContext); @@ -273,11 +273,11 @@ namespace NCryOpenGL TContextMap m_kContextMap; SSharingFence m_kCreationFence; - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) || defined(DXGL_USE_LAZY_CLEAR) virtual SOutputMergerTextureView* AsSOutputMergerTextureView() { return NULL; } #endif - // Confetti End: Igor Lobanchikov + }; struct SOutputMergerTextureView @@ -299,11 +299,11 @@ namespace NCryOpenGL static const GLint INVALID_LAYER; - // Confetti BEGIN: Igor Lobanchikov + #if defined(ANDROID) || defined(DXGL_USE_LAZY_CLEAR) virtual SOutputMergerTextureView* AsSOutputMergerTextureView() { return this; } #endif - // Confetti End: Igor Lobanchikov + }; struct SDefaultFrameBufferOutputMergerView @@ -325,7 +325,7 @@ namespace NCryOpenGL SDefaultFrameBufferShaderTextureView(const SShaderTextureViewConfiguration& kConfiguration); virtual ~SDefaultFrameBufferShaderTextureView(); - // Confetti BEGIN: Igor Lobanchikov :END + virtual bool BindTextureUnit(SSamplerState* pSamplerState, STextureUnitContext& kContext, CContext* pContext, const STextureUnitCache& kCurrentUnitCache); bool m_bUsesTexture; diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/CryDXMETAL.hpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/CryDXMETAL.hpp index 4493060bed..12f6c50436 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/CryDXMETAL.hpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/CryDXMETAL.hpp @@ -67,7 +67,7 @@ #include "Interfaces/CCryDXMETALGIAdapter.hpp" #endif //!DXGL_FULL_EMULATION -// Igor: Metal requires that all RTs and depth buffer have the same size. +// Metal requires that all RTs and depth buffer have the same size. #define CRY_OPENGL_DO_NOT_ALLOW_LARGER_RT typedef ID3D10Blob* LPD3D10BLOB; diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/Interfaces/CCryDXMETALDepthStencilState.hpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/Interfaces/CCryDXMETALDepthStencilState.hpp index 052d26a5a6..b95940c0d8 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/Interfaces/CCryDXMETALDepthStencilState.hpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/Interfaces/CCryDXMETALDepthStencilState.hpp @@ -20,9 +20,9 @@ #include "CCryDXMETALDeviceChild.hpp" -// Confetti BEGIN: Igor Lobanchikov + @protocol MTLDepthStencilState; -// Confetti End: Igor Lobanchikov + namespace NCryMetal { @@ -45,9 +45,9 @@ class CCryDXGLDepthStencilState void GetDesc(D3D11_DEPTH_STENCIL_DESC* pDesc); protected: D3D11_DEPTH_STENCIL_DESC m_kDesc; - // Confetti BEGIN: Igor Lobanchikov + id m_MetalDepthStencilState; - // Confetti End: Igor Lobanchikov + }; #endif //__CRYMETALGLDEPTHSTENCILSTATE__ diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/Interfaces/CCryDXMETALSamplerState.hpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/Interfaces/CCryDXMETALSamplerState.hpp index 3987032ace..7288c13862 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/Interfaces/CCryDXMETALSamplerState.hpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/Interfaces/CCryDXMETALSamplerState.hpp @@ -19,9 +19,9 @@ #include "CCryDXMETALDeviceChild.hpp" -// Confetti BEGIN: Igor Lobanchikov + @protocol MTLSamplerState; -// Confetti End: Igor Lobanchikov + namespace NCryMetal { @@ -45,9 +45,9 @@ class CCryDXGLSamplerState void GetDesc(D3D11_SAMPLER_DESC* pDesc); protected: D3D11_SAMPLER_DESC m_kDesc; - // Confetti BEGIN: Igor Lobanchikov + id m_MetalSamplerState; - // Confetti End: Igor Lobanchikov + }; #endif //__CRYMETALGLSAMPLERSTATE__ \ No newline at end of file diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/Interfaces/CCryDXMETALSwapChain.hpp b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/Interfaces/CCryDXMETALSwapChain.hpp index 04956fa725..681e30c749 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/Interfaces/CCryDXMETALSwapChain.hpp +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DXMETAL/Interfaces/CCryDXMETALSwapChain.hpp @@ -20,9 +20,9 @@ #include "CCryDXMETALBase.hpp" #include "CCryDXMETALGIObject.hpp" -// Confetti BEGIN: Igor Lobanchikov + @protocol CAMetalDrawable; -// Confetti End: Igor Lobanchikov + namespace NCryMetal @@ -64,10 +64,10 @@ class CCryDXGLSwapChain // IDXGIDeviceSubObject implementation HRESULT STDMETHODCALLTYPE GetDevice(REFIID riid, void** ppDevice) { return E_NOTIMPL; } - // Confetti BEGIN: Igor Lobanchikov + void TryCreateAutoreleasePool(); void FlushAutoreleasePool(); - // Confetti End: Igor Lobanchikov + protected: bool CreateDrawableView(); @@ -80,11 +80,11 @@ class CCryDXGLSwapChain MetalView* m_currentView; - // Confetti BEGIN: Igor Lobanchikov + id m_Drawable; void* m_pAutoreleasePool; - // Confetti End: Igor Lobanchikov + }; #endif //__CRYMETALGLSWAPCHAIN__ \ No newline at end of file diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DeviceInfo.inl b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DeviceInfo.inl index f31e623dcd..c5ea7a3227 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DeviceInfo.inl +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DeviceInfo.inl @@ -70,13 +70,13 @@ DeviceInfo::DeviceInfo() , m_driverType(D3D_DRIVER_TYPE_NULL) , m_creationFlags(0) , m_featureLevel(D3D_FEATURE_LEVEL_9_1) - // Confetti BEGIN: Igor Lobanchikov + #ifdef CRY_USE_METAL , m_autoDepthStencilFmt(DXGI_FORMAT_R32G8X24_TYPELESS) #else , m_autoDepthStencilFmt(DXGI_FORMAT_R24G8_TYPELESS) #endif - // Confetti End: Igor Lobanchikov + , m_outputIndex(0) , m_syncInterval(0) , m_presentFlags(0) diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DeviceManager/DeviceManager.h b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DeviceManager/DeviceManager.h index 28c19b3c72..57fe3680b2 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DeviceManager/DeviceManager.h +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DeviceManager/DeviceManager.h @@ -290,7 +290,7 @@ class CDeviceManager USAGE_DIRECT_ACCESS = BIT(0), USAGE_DIRECT_ACCESS_CPU_COHERENT = BIT(1), USAGE_DIRECT_ACCESS_GPU_COHERENT = BIT(2), - USAGE_TRANSIENT = BIT(5), // Igor: this forces Metal runtime to create a special mode buffer. Mapped data is valid during a single frame only and until next map. + USAGE_TRANSIENT = BIT(5), // this forces Metal runtime to create a special mode buffer. Mapped data is valid during a single frame only and until next map. USAGE_DEPTH_STENCIL = BIT(17), USAGE_RENDER_TARGET = BIT(18), USAGE_DYNAMIC = BIT(19), diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DeviceManager/DeviceManager_D3D11.inl b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DeviceManager/DeviceManager_D3D11.inl index 72bd7d6df5..40acb4f7b0 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DeviceManager/DeviceManager_D3D11.inl +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DeviceManager/DeviceManager_D3D11.inl @@ -566,7 +566,7 @@ HRESULT CDeviceManager::CreateBuffer( #if defined(CRY_USE_METAL) nD3DUsage = (nUsage & USAGE_TRANSIENT) ? D3D11_USAGE_TRANSIENT : nD3DUsage; #if BUFFER_USE_STAGED_UPDATES == 0 - // Igor: direct access usage is allowed only if staged updates logic is off. + // direct access usage is allowed only if staged updates logic is off. CRY_ASSERT(!(nUsage & USAGE_DIRECT_ACCESS) || !(nUsage & USAGE_STAGING)); nD3DUsage = (nUsage & USAGE_DIRECT_ACCESS) ? D3D11_USAGE_DIRECT_ACCESS : nD3DUsage; @@ -646,7 +646,7 @@ HRESULT CDeviceManager::CreateBuffer( void CDeviceManager::ExtractBasePointer(D3DBuffer* buffer, uint8*& base_ptr) { - // Confetti BEGIN: Igor Lobanchikov + #if defined(CRY_USE_METAL) && (BUFFER_USE_STAGED_UPDATES == 0) base_ptr = (uint8*)DXMETALGetBufferStorage(buffer); #else @@ -659,5 +659,5 @@ void CDeviceManager::ExtractBasePointer(D3DBuffer* buffer, uint8*& base_ptr) base_ptr = NULL; # endif #endif - // Confetti End: Igor Lobanchikov + } diff --git a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DriverD3D.h b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DriverD3D.h index a2a67de598..adeedcf581 100644 --- a/dev/Code/CryEngine/RenderDll/XRenderD3D9/DriverD3D.h +++ b/dev/Code/CryEngine/RenderDll/XRenderD3D9/DriverD3D.h @@ -777,7 +777,7 @@ class CD3D9Renderer int16 m_nQuadVBSize; ////////////////////////////////////////////////////////////////////////// - // Confetti BEGIN: Igor Lobanchikov + #ifdef CRY_USE_METAL SPixFormat m_FormatPVRTC2; //ETC2 compressed RGB for mobile SPixFormat m_FormatPVRTC4; //ETC2a compressed RGBA for mobile @@ -798,7 +798,7 @@ class CD3D9Renderer SPixFormat m_FormatASTC_12x10; SPixFormat m_FormatASTC_12x12; #endif - // Confetti End: Igor Lobanchikov + SPixFormatSupport m_hwTexFormatSupport; int m_fontBlendMode; diff --git a/dev/Code/Tools/HLSLCrossCompiler/src/toGLSLOperand.c b/dev/Code/Tools/HLSLCrossCompiler/src/toGLSLOperand.c index 32adc69aa2..b55097d3b9 100644 --- a/dev/Code/Tools/HLSLCrossCompiler/src/toGLSLOperand.c +++ b/dev/Code/Tools/HLSLCrossCompiler/src/toGLSLOperand.c @@ -682,7 +682,7 @@ void TranslateVariableNameByOperandType(HLSLCrossCompilerContext* psContext, con } bcatcstr(glsl, "("); - // Igor: yet another Qualcomm's special case + // yet another Qualcomm's special case // GLSL compiler thinks that -2147483648 is an integer overflow which is not if (*((int*)(&psOperand->afImmediates[0])) == 2147483648) { @@ -690,7 +690,7 @@ void TranslateVariableNameByOperandType(HLSLCrossCompilerContext* psContext, con } else { - // Igor: this is expected to fix paranoid compiler checks such as Qualcomm's + // this is expected to fix paranoid compiler checks such as Qualcomm's if (*((unsigned int*)(&psOperand->afImmediates[0])) >= 2147483648) { bformata(glsl, "%d", @@ -728,7 +728,7 @@ void TranslateVariableNameByOperandType(HLSLCrossCompilerContext* psContext, con fpcheck(psOperand->afImmediates[2]) || fpcheck(psOperand->afImmediates[3])) { - // Igor: this is expected to fix paranoid compiler checks such as Qualcomm's + // this is expected to fix paranoid compiler checks such as Qualcomm's if (ui32TOFlag & TO_FLAG_FLOAT) { bcatcstr(glsl, "vec4"); diff --git a/dev/Code/Tools/HLSLCrossCompilerMETAL/src/toMETALInstruction.c b/dev/Code/Tools/HLSLCrossCompilerMETAL/src/toMETALInstruction.c index faf85e542c..3c9ac0606e 100644 --- a/dev/Code/Tools/HLSLCrossCompilerMETAL/src/toMETALInstruction.c +++ b/dev/Code/Tools/HLSLCrossCompilerMETAL/src/toMETALInstruction.c @@ -4174,7 +4174,7 @@ void TranslateInstructionMETAL(HLSLCrossCompilerContext* psContext, Instruction* AddIndentation(psContext); bcatcstr(metal, "//SYNC\n"); #endif - // Igor: warning. Although Metal documentation claims the flag can be combined + // warning. Although Metal documentation claims the flag can be combined // this is not true in terms of binary operations. One can't simply OR flags // but rather have to use pre-defined literals. char* aszBarrierType[] = { @@ -4200,7 +4200,7 @@ void TranslateInstructionMETAL(HLSLCrossCompilerContext* psContext, Instruction* else { AddIndentation(psContext); - // Igor: simdgroup_barrier is faster than threadgroup_barrier. It is supported on iOS 10+ on all hardware. + // simdgroup_barrier is faster than threadgroup_barrier. It is supported on iOS 10+ on all hardware. bcatcstr(metal, "threadgroup_barrier("); } diff --git a/dev/Code/Tools/RC/ResourceCompilerImage/Formats/PVRTC.cpp b/dev/Code/Tools/RC/ResourceCompilerImage/Formats/PVRTC.cpp index 547db6d06b..30c795f37b 100644 --- a/dev/Code/Tools/RC/ResourceCompilerImage/Formats/PVRTC.cpp +++ b/dev/Code/Tools/RC/ResourceCompilerImage/Formats/PVRTC.cpp @@ -25,7 +25,7 @@ ////////////////////////////////////////////////////////////////////////// // PowerVR PVRTexLib -// Igor: this is required by the latest PTRTexTool +// this is required by the latest PTRTexTool #if defined(AZ_PLATFORM_WINDOWS) #define _WINDLL_IMPORT #endif @@ -39,7 +39,7 @@ static EPVRTPixelFormat FindPvrPixelFormat(EPixelFormat fmt) { switch (fmt) { - // Confetti BEGIN: Igor Lobanchikov + case ePixelFormat_ASTC_4x4: return ePVRTPF_ASTC_4x4; case ePixelFormat_ASTC_5x4: @@ -68,7 +68,7 @@ static EPVRTPixelFormat FindPvrPixelFormat(EPixelFormat fmt) return ePVRTPF_ASTC_12x10; case ePixelFormat_ASTC_12x12: return ePVRTPF_ASTC_12x12; - // Confetti End: Igor Lobanchikov + case ePixelFormat_PVRTC2: return ePVRTPF_PVRTCI_2bpp_RGBA; case ePixelFormat_PVRTC4: @@ -132,7 +132,7 @@ ImageToProcess::EResult ImageToProcess::ConvertFormatWithPVRTCCompressor(const C cquality = pvrtexture::eETCSlowPerceptual; } } - // Confetti BEGIN: Igor Lobanchikov + else if (fmtDst >= ePixelFormat_ASTC_4x4 && fmtDst <= ePixelFormat_ASTC_12x12) { if (quality == eQuality_Preview) @@ -152,7 +152,7 @@ ImageToProcess::EResult ImageToProcess::ConvertFormatWithPVRTCCompressor(const C cquality = pvrtexture::eASTCThorough; } } - // Confetti End: Igor Lobanchikov + else { if (quality == eQuality_Preview) diff --git a/dev/Code/Tools/RC/ResourceCompilerImage/PixelFormats.cpp b/dev/Code/Tools/RC/ResourceCompilerImage/PixelFormats.cpp index b7366ee8b7..2a3e2f9516 100644 --- a/dev/Code/Tools/RC/ResourceCompilerImage/PixelFormats.cpp +++ b/dev/Code/Tools/RC/ResourceCompilerImage/PixelFormats.cpp @@ -77,7 +77,7 @@ void PixelFormatsInitializer::InitPixelFormat(EPixelFormat format, const PixelFo void PixelFormatsInitializer::InitPixelFormats() { - // Confetti BEGIN: Igor Lobanchikov + // Unsigned Formats // Data in an unsigned format must be positive. Unsigned formats use combinations of // (R)ed, (G)reen, (B)lue, (A)lpha, (L)uminance @@ -153,7 +153,7 @@ void PixelFormatsInitializer::InitPixelFormats() InitPixelFormat(ePixelFormat_A16B16G16R16F, PixelFormatInfo(64, 4, true, "10", 1, 1, 1, 1, 64, false, D3DFMT_A16B16G16R16F, DXGI_FORMAT_R16G16B16A16_FLOAT, eSampleType_Half, "A16B16G16R16F", "four half channels", false, false, eTF_R16G16B16A16F)); InitPixelFormat(ePixelFormat_G16R16F, PixelFormatInfo(32, 2, false, "0", 1, 1, 1, 1, 32, false, D3DFMT_G16R16F, DXGI_FORMAT_R16G16_FLOAT, eSampleType_Half, "G16R16F", "two half channel", false, false, eTF_R16G16F)); InitPixelFormat(ePixelFormat_R16F, PixelFormatInfo(16, 1, false, "0", 1, 1, 1, 1, 16, false, D3DFMT_R16F, DXGI_FORMAT_R16_FLOAT, eSampleType_Half, "R16F", "one half channel", false, false, eTF_R16F)); - // Confetti End: Igor Lobanchikov + for (int i = 0; i < ePixelFormat_Count; ++i) { diff --git a/dev/Code/Tools/RC/ResourceCompilerImage/PixelFormats.h b/dev/Code/Tools/RC/ResourceCompilerImage/PixelFormats.h index acc8cbfe0b..44a0d7f042 100644 --- a/dev/Code/Tools/RC/ResourceCompilerImage/PixelFormats.h +++ b/dev/Code/Tools/RC/ResourceCompilerImage/PixelFormats.h @@ -143,7 +143,7 @@ enum EPixelFormat ePixelFormat_3DC, ePixelFormat_3DCp, ePixelFormat_CTX1, - // Confetti BEGIN: Igor Lobanchikov + ePixelFormat_ASTC_4x4, ePixelFormat_ASTC_5x4, ePixelFormat_ASTC_5x5, @@ -158,7 +158,7 @@ enum EPixelFormat ePixelFormat_ASTC_10x10, ePixelFormat_ASTC_12x10, ePixelFormat_ASTC_12x12, - // Confetti End: Igor Lobanchikov + ePixelFormat_PVRTC2, ePixelFormat_PVRTC4, ePixelFormat_EAC_R11, @@ -219,7 +219,7 @@ struct PixelFormatInfo uint32 minHeight; int blockWidth; int blockHeight; - int bitsPerBlock; // Igor: bits per pixel for uncompressed + int bitsPerBlock; // bits per pixel for uncompressed bool bSquarePow2; D3DFORMAT d3d9Format; DXGI_FORMAT d3d10Format; @@ -250,7 +250,7 @@ struct PixelFormatInfo uint32 a_minHeight, int a_blockWidth, int a_blockHeight, - int a_bitsPerBlock, // Igor: bits per pixel for uncompressed + int a_bitsPerBlock, // bits per pixel for uncompressed bool a_bSquarePow2, D3DFORMAT a_d3d9Format, DXGI_FORMAT a_d3d10Format, @@ -266,7 +266,7 @@ struct PixelFormatInfo , minHeight(a_minHeight) , blockWidth(a_blockWidth) , blockHeight(a_blockHeight) - , bitsPerBlock(a_bitsPerBlock) // Igor: bits per pixel for uncompressed + , bitsPerBlock(a_bitsPerBlock) // bits per pixel for uncompressed , bSquarePow2(a_bSquarePow2) , szAlpha(a_szAlpha) , d3d9Format(a_d3d9Format) @@ -278,12 +278,12 @@ struct PixelFormatInfo , bSelectable(a_bSelectable) , etexFormat(a_etexFormat) { - // Confetti BEGIN: Igor Lobanchikov + if (a_bitsPerPixel) { assert(a_bitsPerPixel * blockWidth * blockHeight == bitsPerBlock); } - // Confetti End: Igor Lobanchikov + } }; @@ -363,8 +363,8 @@ class CPixelFormats #define D3DFMT_3DC ((D3DFORMAT)(MAKEFOURCC('A', 'T', 'I', '2'))) // two channel compressed normal maps 8bit -> 8 bits per pixel #define D3DFMT_3DCp ((D3DFORMAT)(MAKEFOURCC('A', 'T', 'I', '1'))) // one channel compressed maps 8bit -> 4 bits per pixel #define D3DFMT_CTX1 ((D3DFORMAT)(MAKEFOURCC('C', 'T', 'X', '1'))) // two channel compressed normal maps 4bit -> 4 bits per pixel -// Confetti BEGIN: Igor Lobanchikov -// Igor: ASTC codes aren't official + +// ASTC codes aren't official #define D3DFMT_ASTC4x4 ((D3DFORMAT)(MAKEFOURCC('A', 'S', '4', '4'))) // ASTC texture compression, 8 bits per pixel, block is 4x4 pixels, 128 bits #define D3DFMT_ASTC5x4 ((D3DFORMAT)(MAKEFOURCC('A', 'S', '5', '4'))) // ASTC texture compression, 6.4 bits per pixel, block is 5x4 pixels, 128 bits #define D3DFMT_ASTC5x5 ((D3DFORMAT)(MAKEFOURCC('A', 'S', '5', '5'))) // ASTC texture compression, 5.12 bits per pixel, block is 5x5 pixels, 128 bits @@ -381,7 +381,7 @@ class CPixelFormats #define D3DFMT_ASTC12x12 ((D3DFORMAT)(MAKEFOURCC('A', 'S', 'C', 'C'))) // ASTC texture compression, 0.89 bits per pixel, block is 12x10 pixels, 128 bits #define D3DFMT_PVRTC2 ((D3DFORMAT)(MAKEFOURCC('P', 'V', 'R', '2'))) // POWERVR texture compression, 2 bits per pixel, block is 8x4 pixels, 64 bits #define D3DFMT_PVRTC4 ((D3DFORMAT)(MAKEFOURCC('P', 'V', 'R', '4'))) // POWERVR texture compression, 4 bits per pixel, block is 4x4 pixels, 64 bits -// Confetti End: Igor Lobanchikov + // Sokov: ETC2/EAC fourcc codes below are not official, I made them by myself. Feel free to replace them by better codes. #define D3DFMT_ETC2 ((D3DFORMAT)(MAKEFOURCC('E', 'T', '2', ' '))) // ETC2 RGB texture compression, 4 bits per pixel, block is 4x4 pixels, 64 bits #define D3DFMT_ETC2a ((D3DFORMAT)(MAKEFOURCC('E', 'T', '2', 'A'))) // ETC2 RGBA texture compression, 8 bits per pixel, block is 4x4 pixels, 128 bits