I may have found a work-around to stop large dogs crashing The Sims 4 Cats & Dogs - first I want to discuss a bit of background to explain why this workaround "kind-of" works before I go into the detail of implementing it.
It seems that most of the people in this thread receiving the "Application TS4_x64.exe has been blocked from accessing graphics hardware" when creating large dogs have an Intel "Braswell" family CPU such as the dual-core Celeron N3060 or it's quad-core sibling, the Pentium N3710. Computers based on these processors will generally use the Intel HD Graphics 400 GPU that is built into the N3060, or the marginally more powerful Intel HD Graphics 405 GPU that is built into the N3170. Neither of these are particularly powerful GPUs.
It's arguable that the Pentium N3710 has a powerful enough CPU to run The Sims 4 Cats and Dogs (for example, according to cpubenchmark.net the N3710 is substantially more powerful that the 2.0GHz Intel Core 2 Duo listed in the minimum requirements to run The Sims 4 Cats and Dogs - https://www.cpubenchmark.net/compare/Intel-Pentium-N3710-vs-Intel-Core2-Duo-E4400/2730vs935). Finding a meaningful comparison between the Intel GMA X4500 graphics listed as the minimum GPU requirement and the N3710's Intel HD Graphics 405 is much more difficult, but comparing the results for three games (Dead Space 3, Counter-Strike: GO and Deus Ex Human Revolution, all at 1024x768 (low settings)) on notebookcheck.net seems to show that the HD Graphics 405 is roughly three times faster than the Intel GMA X4500 (see https://www.notebookcheck.net/Intel-Graphics-Media-Accelerator-4500MHD-GMA-X4500MHD.9883.0.html and https://www.notebookcheck.net/Intel-HD-Graphics-405-Braswell-Benchmarks-and-Specs.169241.0.html for details). Despite this it seems that EA has decided that they're not going to support the N3710, so we're stuck with trying to work around the problem. If you have the N3710 and are trying to get a refund for the Cats & Dogs expansion this is an argument that may be worth having (in fairness it's pretty certain that the Celeron N3060 CPU falls below the minimum requirements for the game).
Back to the problem - based on my observations, it seems that when rendering large dogs in the character creation screen the game uses a GPU instruction (or series of instructions) that the Intel HD Graphics 400 GPU supports but processes very inefficiently, and thus takes a long time to execute. What then happens is that a mechanism built into Windows, Timeout Detection and Recovery (TDR), decides that the GPU has locked up and resets it (resulting in a screen flicker). After this mechanism has triggered several times within a set time limit, Windows decides that the application is faulty and blocks it's access to the GPU, resulting in the "Application TS4_x64.exe has been blocked from accessing graphics hardware" error (see https://docs.microsoft.com/en-us/windows-hardware/drivers/display/timeout-detection-and-recovery for more details).
By default Windows will wait for 2 seconds for a graphics operation to complete, and will block access to the graphics hardware if the TDR decides that the GPU has locked up more than 5 times in 60 seconds. These defaults can be changed by modifying some registry settings.
Note that modifying the registry can cause major problems if you make a mistake. Theoretically you could make enough of a mess that a complete reinstallation of Windows is required. Unless you're experienced in modifying the Windows registry I would recommend that, at the very least, you back up the registry by following the instructions at https://support.microsoft.com/en-us/help/322756. It may even be worth backing up your whole hard drive (remember, data you donāt back up is data you donāt mind losing). Note also that these registry settings affect all programs, not just The Sims 4, so if you run a program that really does cause problems with the GPU the TDR system won't be able to protect you and the only way to recover may be a reboot. Having said that, I've made these changes to my daughter's Celeron N3060-based laptop and it seems to have worked without causing any other problems.
These are the registry keys I suggest you add (see https://docs.microsoft.com/en-us/windows-hardware/drivers/display/tdr-registry-keys for a full explanation):
- TdrDelay set to 8 - this increases the time Windows will wait for a graphics operation to complete from 2 seconds to 8 seconds
- TdrLimitCount set to 15 - this increases the number of GPU "lockups" Windows will tollerate from 5 to 15
- TdrLimitTime set to 15 - this decreases the window during which the "lockups" are permitted from 60 seconds to 15 seconds. In combination this means Windows now considers 15 GPU "lockups" in 15 seconds to be a major problem, rather than 5 lockups in 60 seconds. Since the change to TdrDelay means a "lockup" takes 8 seconds, Windows should never detect what it thinks is a major problem.
- TdrDebugMode to 3 - this changes Windows behaviour from "TDR_DEBUG_MODE_RECOVER_NO_PROMPT (2 ) - Recover without breaking into the debugger" to "TDR_DEBUG_MODE_RECOVER_UNCONDITIONAL (3 ) - Recover even if some recovery conditions are not met (for example, recover on consecutive timeouts)".
To add these keys:
- Type "regedit" in the Windows search box. When Windows finds the Regedit application, right-click it and choose "Run as Administrator" - enter the Administrator password when prompted (assuming you're not already running as an Administrator).
- In the left hand pane, expand the heading HKEY_LOCAL_MACHINE, then the heading SYSTEM, then CurrentControlSet, then Control and finally click on GraphicsDrivers.
- In the right hand pane, right click and then choose "New -> DWORD (32-bit) Value".
- Right click on the New Value #1 that appears, choose "Rename" and rename it to TdrDelay.
- Double click the new TdrDelay key and in the dialog box that appears click the radio-button marked "Decimal", put the value 8 in the "Value data" box and click "OK". You should now have a registry value with the name TdrDelay of type REG_DWORD with the value 0x00000008 (8).
- Repeat steps 3 to 6, creating the value TdrLimitCount with a "Value data" of 15. You should now have a registry value with the name TdrLimitCount of type REG_DWORD with the value 0x0000000f (15).
- Repeat steps 3 to 6, creating the value TdrLimitTime with a "Value data" of 15. You should now have a registry value with the name TdrLimitTime of type REG_DWORD with the value 0x0000000f (15).
- Repeat steps 3 to 6, creating the value TdrDebugMode with a "Value data" of 3. You should now have a registry value with the name TdrDebugMode of type REG_DWORD with the value 0x00000003 (3 ).
- Quit out of Regedit and reboot your computer.
Note that this is not a magical fix. If you go into the character creation screen and try and create a large dog the game will pause for several seconds at a time before recovering, often with a noticeable flicker of the screen. I'd suggest you still stick to creating cats and small dogs. However, it does mean that if you go to create a a dog and the game randomly selects an Irish Wolfhound (for example), the game may lock up for a few seconds but it won't crash, giving you the opportunity to select a smaller breed. If you are (very) patient it is in fact possible to create a big dog if you really want to, and once you've finished creating characters the game plays okay (as a test I successfully created a household with one person and three large dogs, and the game was playable with this family).
Good luck, and have fun with your digital pets!