When i got Witcher 2, i found on my system the game was very ressource heavy, running badly and etc... in comparison to other similar game of its time
So i applied some tricks with the Rendering.ini and User.ini i had read about at the time to tone down the graphics a lot more than possible with the game settings, disabling the very heavy effects
And from there, i managed then to complete the game without any crash.
Making me think that the game may be actually too ressource intensive for its engine, and that could be a reason of the many crashes people report.
If you don't mind giving a try to playing on low graphic to see if it works without crash as it did to me, you can try this :
First !
Back up your own Rendering.ini from
C:\GOG Games\The Witcher 2\bin\config\
and
C:\Users\YourUserName\Documents\Witcher 2\Config\
(with YourUserName being of course your own user name on your PC)
and then open your Rendering.ini and replace whatever is inside by
[TextureStreaming]
MaxResidentMipMap=6
[TextureGroups]
Default=(Compression=TCM_None,MaxSize=1024)
Font=(Resize=false,Streamable=false,Compression=TCM_DXTAlpha,MaxSize=4096)
DetailNormalMap=(Detail=true,Compression=TCM_NormalsHigh,MaxSize=1024)
WorldDiffuse=(Compression=TCM_DXTNoAlpha,MaxSize=1024)
WorldDiffuseWithAlpha=(Compression=TCM_DXTAlpha,MaxSize=1024)
WorldNormal=(Compression=TCM_Normals,MaxSize=1024)
WorldNormalHQ=(Compression=TCM_NormalsHigh,MaxSize=1024)
WorldSpecular=(Compression=TCM_DXTNoAlpha,MaxSize=1024)
WorldEmissive=(Compression=TCM_DXTNoAlpha,MaxSize=1024)
CharacterDiffuse=(Compression=TCM_DXTNoAlpha,MaxSize=1024)
CharacterDiffuseWithAlpha=(Compression=TCM_DXTAlpha,MaxSize=1024)
CharacterNormal=(Compression=TCM_Normals,MaxSize=1024)
CharacterNormalHQ=(Compression=TCM_NormalsHigh,MaxSize=1024)
CharacterEmissive=(Compression=TCM_DXTNoAlpha,MaxSize=1024)
TerrainSpecial=(Streamable=false,User=false,Compression=TCM_None,MaxSize=2048)
TerrainMaskMap=(Streamable=false,User=false,Compression=TCM_None,MaxSize=2048)
TerrainDiffuseAtlas=(Streamable=false,Atlas=true,User=false,Compression=TCM_DXTAlpha,MaxSize=2048)
TerrainNormalAtlas=(Streamable=false,Atlas=true,User=false,Compression=TCM_NormalsHigh,MaxSize=2048)
TerrainDiffuse=(Compression=TCM_DXTNoAlpha,MaxSize=1024)
TerrainNormal=(Compression=TCM_Normals,MaxSize=1024)
Particles=(Streamable=false,Compression=TCM_DXTAlpha,MaxSize=1024)
ParticlesWithoutAlpha=(Streamable=false,Compression=TCM_DXTNoAlpha,MaxSize=1024)
FoliageDiffuse=(Compression=TCM_DXTAlpha,MaxSize=1024)
SpeedTreeDiffuse=(Compression=TCM_DXTNoAlpha,MaxSize=1024)
SpeedTreeDiffuseDetail=(Compression=TCM_DXTAlpha,MaxSize=1024)
SpeedTreeNormal=(Compression=TCM_NormalsHigh,MaxSize=1024)
SpeedTreeNormalDetail=(Compression=TCM_NormalsHigh,MaxSize=1024)
SpeedTreeSpecular=(Compression=TCM_DXTNoAlpha,MaxSize=1024)
SpeedTreeDiffuseWithAlpha=(Compression=TCM_DXTAlpha,MaxSize=1024)
SpeedTreeSpecularWithAlpha=(Compression=TCM_DXTAlpha,MaxSize=1024)
MimicDecalsNormal=(Compression=TCM_DXTAlpha,MaxSize=1024)
BillboardAtlas=(Resize=false,Compression=TCM_DXTAlpha,MaxSize=1024)
SpecialQuestDiffuse=(Resize=false,Compression=TCM_DXTNoAlpha,MaxSize=1024)
SpecialQuestNormal=(Resize=false,Compression=TCM_NormalsHigh,MaxSize=1024)
Flares=(Compression=TCM_None,MaxSize=512)
and save the changes
Additionally, both in
C:\GOG Games\The Witcher 2\bin\config\
and
C:\Users\YourUserName\Documents\Witcher 2\Config\
open the file User.ini
scroll down until the [Rendering] section and replace whatever is there by
[Rendering]
AllowAntialias=0
AllowBloom=0
AllowBlur=0
AllowCutsceneDOF=0
AllowDOF=0
AllowDecals=0.0
AllowMotionBlur=0
AllowRain=0
AllowSSAO=0
AllowScatterDOF=0
AllowShafts=0
AllowSharpen=0
AllowVignette=0
AspectRatio=1
AtlasTextureDownscale=2
CharacterLodGameplayDownscale=1
DanglesLimiter=2
DetailTextureDownscale=1
FoliageDistanceScale=0
Fullscreen=1
MaxAtlasTextureSize=256
MaxCubeShadowCount=0
MaxCubeShadowSize=0
MaxSpotShadowCount=0
MaxSpotShadowSize=0
MaxTextureSize=256
MeshDistanceScale=0.3
ShadowQuality=0
ShadowedLights=0
TextureDownscale=2
TextureMemoryBudget=100
TextureTimeBudget=10
UberSampling=0
VSync=0
(i highy suggest you to back up your User.ini before doing that too)
Finally, you can use that mod that fixes some bugs left in the game quests , probably unrelated to the crashes but having all quests working as they should is always good anyways
https://www.nexusmods.com/witcher2/mods/981