rpcs3 icon indicating copy to clipboard operation
rpcs3 copied to clipboard

James Cameron's AVATAR™: THE GAME [BLUS30374] - Foliage Flickering

Open Azonnali opened this issue 2 years ago • 6 comments

Quick summary

The foliage flickers on both my Windows PC and my Mac. Seems to be a revival of #11552 which should have been fixed by #11568.

Details

The foliage textures flicker a lot, everything else looks fine.

As outlined in #11552 and #11568 I enabled "Allow GPU Host Labels" in the config yet this didnt resolve the problem.

I tried it on version 0.0.28-15355-1371bf89 on both of my machines (W11 and macOS):

Windows 11 (22H2, build: 22621.1992) Intel Arc A770 16GB (driver: 31.0.101.4575 [latest as of writing this]) Ryzen 5600 32 GB RAM

macOS 13.4.1 (c) M1 Mac Mini 8 GB RAM

Attach a log file

RPCS3.log.gz

Attach capture files for visual issues

BLUS30374_20230715193304_capture.zip

System configuration

My Windows PC: Windows 11 (22H2, build: 22621.1992) Intel Arc A770 16GB (driver: 31.0.101.4575 [latest as of writing this]) Ryzen 5600 32 GB RAM

My Mac: macOS 13.4.1 (c) M1 Mac Mini 8 GB RAM

Other details

No response

Azonnali avatar Jul 15 '23 17:07 Azonnali

That's because arc and M1 do not support the feature needed here. There's really no other way around it, other than using strict rendering mode and running at very low fps.

kd-11 avatar Jul 15 '23 21:07 kd-11

·E 0:00:14.285845 RSX: INTEL driver does not support passthrough DMA buffers

Though now that I think about it, we're doing the check through a whitelist. Maybe arc fixed their issues? It's highly unlikely given that passthrough doesn't even work properly on NVIDIA cards. Only AMD has full support for this.

kd-11 avatar Jul 15 '23 21:07 kd-11

That's because arc and M1 do not support the feature needed here. There's really no other way around it, other than using strict rendering mode and running at very low fps.

Just tested with strict rendering mode toggled on: Performance neither degraded nor did it fix the flickering. Happens on my Mac as well (I turned GPU Host Labels off again on both). I guess its because they do not support double precision floats? (attached new log file). Not sure if I should report this to Intel or not. RPCS3.log.gz

Azonnali avatar Jul 15 '23 21:07 Azonnali

I guess its because they do not support double precision floats? No, it's because the game actually starts overwriting VRAM based on when it sees labels.

You're right, even strict mode isn't strict enough here, because we'd actually get single digit framerates if we paused the pipe for real. The only solution is to configure the host GPU (arc/geforce/etc) to tell the game when it reaches the fence position. This means the GPU needs to have access to the vm memory. Most GPU drivers don't like our virtual memory because its meant for CPU use and comes in small memory mapped chunks.

Workarounds include having a separate CPU worker periodically unblock process threads but performance will be atrocious. I guess we can keep the ticket open until I have a working workaround committed at least.

kd-11 avatar Jul 15 '23 22:07 kd-11

I looked into this briefly a few weeks ago, M1 does expose the extension we need, but it doesn't seem to work right. Probably some other TBDR gotcha where I didn't flush the subpass when it wanted. I'll come up with a workaround to execute a host event pump via the FIFO puller.

kd-11 avatar Aug 30 '23 23:08 kd-11

I'm seeing the flickering as well in this game with Linux, RPCS3 0.0.32-1-1c16ada6 Alpha (Flathub), and AMD Vega 6 graphics. I enabled both "Allow GPU Host labels" and the strict mode. I'm guessing this is expected for now, but due to the GPU capabilities mentions above I just wanted to provide an additional data point in case for this GPU, this wasn't expected.

Update: I also tried the oldest version still on Flathub, 0.0.31-1-c02aae41 Alpha. It doesn't address this either.

ell1e avatar Sep 10 '24 12:09 ell1e

@ell1e, @Azonnali is that still an issue?

digant73 avatar Oct 27 '25 23:10 digant73