Project

General

Profile

Actions

Emulator Issues #486

closed

MP1's intro cinematic runs slow

Added by tinctorius almost 16 years ago.

Status:
Invalid
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

What steps will reproduce the problem?

  1. Start a new game in MP1.

What is the expected output? What do you see instead?
I can see the intro cinematic, but the video runs so slow it eventually
lags way behind the audio.

What version of the product are you using? On what operating system?
r1865, Linux x86-64, flavor=prof, DC enabled

Please provide any additional information below.
Profiler output of the slowest parts (showing the frigate hull etc.):

CPU: AMD64 processors, speed 2210.06 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Cycles outside of halt state) with a unit
mask of 0x00 (No unit mask) count 100000
samples % image name app name symbol name
1067428 21.0961 Dolphin Dolphin
CommandProcessor::GatherPipeBursted()
1016545 20.0904 anon (tgid:6337 range:0x419ba000-0x42aba000) Dolphin
(no symbols)
981907 19.4059 libGLcore.so.177.82 Dolphin (no
symbols)
244384 4.8299 no-vmlinux no-vmlinux (no
symbols)
225183 4.4504 Dolphin Dolphin
Memory::GetPointer(unsigned int)
134607 2.6603 anon (tgid:6337 range:0x40986000-0x40989000) Dolphin
(no symbols)
122949 2.4299 libc-2.7.so Dolphin memcpy
117552 2.3232 anon (tgid:6337 range:0x412f5000-0x413f5000) Dolphin
(no symbols)
73200 1.4467 libPlugin_VideoOGL.so Dolphin
VertexLoader::RunVertices(int, int, int)
66528 1.3148 libGL.so.177.82 Dolphin (no
symbols)
53798 1.0632 libpthread-2.7.so Dolphin
pthread_mutex_lock
47960 0.9479 libPlugin_VideoOGL.so Dolphin
TexCoord_ReadIndex16_Float2()
42436 0.8387 libPlugin_VideoOGL.so Dolphin
Pos_ReadIndex16_Float()
33959 0.6711 libPlugin_VideoOGL.so Dolphin Decode()
33513 0.6623 libPlugin_VideoOGL.so Dolphin
TexCoord_ReadIndex16_UShort2()
30907 0.6108 libPlugin_VideoOGL.so Dolphin
VertexManager::Flush()
28613 0.5655 libPlugin_VideoOGL.so Dolphin
VertexLoader_Normal::Normal_Index16_Short()
26812 0.5299 libc-2.7.so Dolphin _int_malloc
26243 0.5187 libpthread-2.7.so Dolphin
__pthread_mutex_unlock_usercnt
23644 0.4673 libPlugin_VideoOGL.so Dolphin
TextureMngr::Load(int, unsigned int, int, int, int, int, int)
22753 0.4497 Dolphin Dolphin
GPFifo::Write32(unsigned int, unsigned int)
21276 0.4205 Dolphin Dolphin
CoreTiming::Advance()
20721 0.4095 Dolphin Dolphin
Interpreter::fcmpo(UGeckoInstruction)
20630 0.4077 oprofiled oprofiled (no
symbols)
18981 0.3751 libPlugin_VideoOGL.so Dolphin
FifoCommandRunnable()
18860 0.3727 Dolphin Dolphin
Interpreter::cntlzwx(UGeckoInstruction)
18447 0.3646 Dolphin Dolphin
Memory::Write_U32(unsigned int, unsigned int)
17993 0.3556 Dolphin Dolphin
SystemTimers::AdvanceCallback(int)
17477 0.3454 libc-2.7.so Dolphin _int_free
17139 0.3387 libPlugin_VideoOGL.so Dolphin
BPWritten(int, int, int)
16952 0.3350 anon (tgid:6337 range:0x414d3000-0x414d4000) Dolphin
(no symbols)
15399 0.3043 libPlugin_VideoOGL.so Dolphin
TexDecoder_GetSafeTextureHash(unsigned char const*, int, int, int, unsigned
int)
15235 0.3011 libPlugin_VideoOGL.so Dolphin
GetPixelShaderId(PIXELSHADERUID&, unsigned int, unsigned int, unsigned int)
15180 0.3000 libPlugin_VideoOGL.so Dolphin
PixelShaderManager::SetConstants()
13940 0.2755 libPlugin_VideoOGL.so Dolphin
PixelShaderCache::GetShader()
13756 0.2719 libPlugin_VideoOGL.so Dolphin
VertexLoader_Normal::Normal_Index16_Float()
12292 0.2429 Dolphin Dolphin
Interpreter::bclrx(UGeckoInstruction)
11263 0.2226 libPlugin_VideoOGL.so Dolphin
GLVertexFormat::SetupVertexPointers() const
10963 0.2167 libasound.so.2.0.0 Dolphin (no
symbols)
10413 0.2058 Dolphin Dolphin
Interpreter::psq_l(UGeckoInstruction)
10169 0.2010 libPlugin_VideoOGL.so Dolphin
VertexShaderManager::SetConstants(bool, bool)

Actions #1

Updated by memberTwo.mb2 almost 16 years ago

Update SVN and you wont see CommandProcessor::GatherPipeBursted anymore.
Anyway it's a GPU general perf issue.

1016545 20.0904 anon (tgid:6337 range:0x419ba000-0x42aba000) Dolphin (no symbols)
981907 19.4059 libGLcore.so.177.82 Dolphin (no symbols)

If we can't have more verbose/deeper profiling infos on this, it pretty useless :p
If you/someone can't provide more I'll close this issue.

Actions #2

Updated by tinctorius almost 16 years ago

I'll try again later --- I'd also need to fix the crashes DEBUGFAST etc. :P

Actions #3

Updated by tinctorius almost 16 years ago

Further investigation as suggested by mb2 is blocked by issue 487.

Actions #4

Updated by tinctorius almost 16 years ago

Essentially converted __Log to vprintf, so I can still have a go at this. Profiling
with r1878, -DDEBUGFAST -g -O3, Dual Core and Safe texture cache enabled. Profiling a
pure slow scene from the intro, when the frigate itself is almost fully visible.

CPU: AMD64 processors, speed 2210.05 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Cycles outside of halt state) with a unit mask of
0x00 (No unit mask) count 100000
samples % image name app name symbol name
524365 33.0901 anon (tgid:14251 range:0x40eca000-0x41fca000) Dolphin
(no symbols)
163628 10.3257 libGLcore.so.177.82 Dolphin (no symbols)
85232 5.3786 Dolphin Dolphin
Memory::GetPointer(unsigned int)
78796 4.9724 no-vmlinux no-vmlinux (no symbols)
61344 3.8711 anon (tgid:14251 range:0x40e82000-0x40e84000) Dolphin
(no symbols)
43002 2.7136 libPlugin_VideoOGL.so Dolphin
Memory_Read_U32(unsigned int)
37778 2.3840 libPlugin_VideoOGL.so Dolphin
VertexLoader::RunVertices(int, int, int)
35692 2.2523 libPlugin_VideoOGL.so Dolphin
TexCoord_ReadIndex16_Float2()
26253 1.6567 Dolphin Dolphin
Interpreter::divwux(UGeckoInstruction)
26217 1.6544 libc-2.7.so Dolphin memcpy
25255 1.5937 libPlugin_VideoOGL.so Dolphin
Common::swap32(unsigned int)
19556 1.2341 Dolphin Dolphin
Memory::Write_U32(unsigned int, unsigned int)
18892 1.1922 Dolphin Dolphin
GPFifo::Write32(unsigned int, unsigned int)
16604 1.0478 Dolphin Dolphin
Common::swap32(unsigned int)
15652 0.9877 libPlugin_VideoOGL.so Dolphin
Pos_ReadIndex16_Float()
14942 0.9429 libPlugin_VideoOGL.so Dolphin DataReadU16()
13504 0.8522 Dolphin Dolphin
GPFifo::CheckGatherPipe()
13271 0.8375 libPlugin_VideoOGL.so Dolphin
Common::swap16(unsigned short)
12536 0.7911 libGL.so.177.82 Dolphin (no symbols)
11389 0.7187 oprofiled oprofiled (no symbols)
10044 0.6338 libpthread-2.7.so Dolphin pthread_mutex_lock
9713 0.6129 libPlugin_VideoOGL.so Dolphin
Memory_Read_U16(unsigned int)
8747 0.5520 libPlugin_VideoOGL.so Dolphin
VertexLoader_Normal::Normal_Index16_Float()
8466 0.5342 Dolphin Dolphin
Interpreter::bclrx(UGeckoInstruction)
8430 0.5320 Dolphin Dolphin
Interpreter::fcmpo(UGeckoInstruction)
8407 0.5305 libPlugin_VideoOGL.so Dolphin
TexCoord_ReadIndex16_UShort2()
7939 0.5010 libPlugin_VideoOGL.so Dolphin
VertexManager::Flush()

My system should be well capable of showing scenes with high poly count, by the way ;)

Actions #5

Updated by tinctorius almost 16 years ago

Blargh, same result :P

Is there any way I can profile the JIT output itself, to see wether it gets 'stuck'
at some points? Maybe something that can get the instruction pointer once every
seconds, so I can analyse the 'code usage intensity'? ;)

Actions #6

Updated by XTra.KrazzY over 15 years ago

take a chance on this issue again. you seem to be a "report and forget" type of person :)

Actions #7

Updated by tinctorius over 15 years ago

More like FTBFS and busybusybusybusy.

Actions #8

Updated by Anonymous over 15 years ago

FTBFS is linux-speak for "i'm a laz0r"
:D

Actions #9

Updated by magumagu9 over 15 years ago

I've spent some time looking at Metroid Prime recently; some observations:

  1. I'm not entirely sure why (I haven't profiled regular Jit builds for this game),
    but JitIL is a lot faster than the regular Jit, at least in some places, so I'd
    suggest trying that.

  2. If you see Common::swap16 in a profile, you're not using an optimized build.

  3. If by the "intro cinematic" you mean the scene just before you gain control, the
    issue is a graphics plugin slowdown.

Actions #10

Updated by tinctorius over 15 years ago

  1. Will try.
  2. I don't get it then...
  3. That's exactly what I meant (and expected, as well).
Actions #11

Updated by XTra.KrazzY over 15 years ago

  1. you're not using debugfast/release
Actions #12

Updated by tinctorius over 15 years ago

  1. Strange, I was using prof, which had -O3 -g at that time...
Actions #13

Updated by federelli over 15 years ago

Disable STC and whatch the intro fly if it doesn't crash.

Actions #14

Updated by omegadox over 15 years ago

  • Status changed from New to Accepted

This is due to the lag on the vertex loading and texture caching.

Actions #15

Updated by sl1nk3.s over 15 years ago

This is due to bad hardware that's all :p
MP1 intro movie runs +90 fps here, STC doesn't seem to change anything, maybe you can
optimize it a bit..
Also, the linux build is slower than the windows one, maybe we can try to 'fix' that

Actions #16

Updated by XTra.KrazzY over 15 years ago

Still an issue???

Actions #17

Updated by felixluz over 15 years ago

The intro (Alas, the game as well for most part) runs extremely slow as well, and
audio gets desynched

Running on Vista x64

Safe Texture Cache or not, the performance is the same. Without STC there are
constant crashes (As expected)

Actions #19

Updated by sl1nk3.s almost 15 years ago

What are we going to do on this one... ?

Actions #20

Updated by XTra.KrazzY almost 15 years ago

I say it's not really important. Accurate emulation > fast emulation

Actions #21

Updated by sl1nk3.s almost 15 years ago

actually it's not even at that slow at all here :p

Actions #22

Updated by Anonymous almost 15 years ago

These days, if it's slow on this specific scene it's just because of the sheer amount
of geometry being processed. the MP games tend to render waaay more geometry than
really needed, but hey, that's not our fault :P

Merge with another "caching vertices is cool"/whatever issue.

Actions #23

Updated by Anonymous almost 14 years ago

Please respond if this issue is still valid, or it will be closed.

Actions #24

Updated by tinctorius almost 14 years ago

I think I'll try it again this Saturday (at least on Win7, perhaps also on Debian). The hardware has changed a bit, though ;)

Actions #25

Updated by Anonymous almost 14 years ago

  • Status changed from Accepted to Invalid
Actions

Also available in: Atom PDF