Dolphin bug tracker: Issueshttps://bugs.dolphin-emu.org/https://bugs.dolphin-emu.org/favicon.ico?12015-06-09T19:44:23ZDolphin bug tracker
Redmine Emulator - Emulator Issues #8664 (Fixed): We lack a proper udev config filehttps://bugs.dolphin-emu.org/issues/86642015-06-09T19:44:23Zdegasuswickmarkus86@gmail.com
<p>We should provide an udev config file for all custom hardware we support.<br>
The distribution will likely touch them, but we're the only one who knows the uuids.</p>
<p>DolphinBar, WiiU GC adapter, anything else?</p>
Emulator - Emulator Issues #8637 (Fixed): SkipIdle=0 in GameInishttps://bugs.dolphin-emu.org/issues/86372015-06-06T08:09:45Zdegasuswickmarkus86@gmail.com
<p>Quite a few games disable IdleSkipping per GameInis:<br>
R5D.ini:SkipIdle = 0<br>
SX8.ini:SkipIdle = 0<br>
G9R.ini:SkipIdle = 0<br>
G8W.ini:SkipIdle = False<br>
GDE.ini:SkipIdle = 0<br>
GE4.ini:SkipIdle = 0<br>
GHK.ini:SkipIdle = 0<br>
GVL.ini:SkipIdle = 0<br>
R8J.ini:SkipIdle = False<br>
RBW.ini:SkipIdle = False<br>
SIL.ini:SkipIdle = 0</p>
<p>We also have an option for "SyncOnSkipIdle". This of course has no effect if idle skipping is disabled, but it may be enough to just disable this synchonization.</p>
<p>Idle skipping is usually a safe optimization. It's a really huge improvements, but so the CPU thread may be executed too fast (or the GPU too slow), so we have a hack to sync with the GPU on idle skipping.<br>
But this hack may harm in many ways (eg for variable FPS games), so it's often wise to deactivate it. But deactivating idleskipping completely sounds a bit hard IMO.</p>
Emulator - Emulator Issues #8598 (Fixed): OGL: zfreeze reads from WRITE_ONLY mapped bufferhttps://bugs.dolphin-emu.org/issues/85982015-05-26T20:29:33Zdegasuswickmarkus86@gmail.com
<p>The current zfreeze code reads the last position from the vertex buffer. This buffer is given by the backend as WRITE_ONLY. On OpenGL, this is often a write_combined memory, so every read operation will fall back to uncached memory. This ends in a 5% real time usage because of waiting for memory.</p>
<p>Officially, this is a OpenGL violation. So newer driver may also read-protect this page and dolphin may crash.</p>
<p>There is a fix as WIP:<br>
<a href="https://github.com/dolphin-emu/dolphin/pull/2141" class="external">https://github.com/dolphin-emu/dolphin/pull/2141</a></p>
<p>The broken access is in:<br>
<a href="https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/VideoCommon/VertexManagerBase.cpp#L302" class="external">https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/VideoCommon/VertexManagerBase.cpp#L302</a></p>
Emulator - Emulator Issues #8595 (Fixed): Redundant Hotkey optionshttps://bugs.dolphin-emu.org/issues/85952015-05-26T12:50:24Zdegasuswickmarkus86@gmail.com
<p>There are both, "Key Shortcuts" and "Hotkey Settings" with the same settings.</p>
<p>The first uses the WX option, the second one our self-written input code. As they are completely redundant, we should drop one of those.</p>
<p>Maybe I'm wrong, but as far as I know, this are the main differences:<br>
Key Shortcuts:</p>
<ul>
<li>use WX input, so also works fine if the game is stopped (can't be used to start a game)</li>
<li>has to be duplicated on different UIs (WX, QT, nogui)</li>
<li>simpler syntax, but not feature complete</li>
</ul>
<p>Hotkey Settings:</p>
<ul>
<li>use self-written input code</li>
<li>supports gamepads (and everything else which can be used for emulating controllers)</li>
<li>the render context must be in focus without background input (just UI isn't enough)</li>
</ul>
Emulator - Emulator Issues #8319 (Fixed): Blocking input code on X11https://bugs.dolphin-emu.org/issues/83192015-03-07T08:35:21Zdegasuswickmarkus86@gmail.com
<p>Our input code on linux has some blocking X11 calls in the hot path (on the cpu thread). This can waste lots of cpu ressources while eg the GPU is busy.<br>
There should an event loop on an input thread which recieves this kind of data for us.</p>
<p>Example stack trace:<br>
#0 0x00007f8d9b7914ed in poll () from /usr/lib/libc.so.6<br>
<a class="issue tracker-1 status-3 priority-2 priority-default closed" title="Emulator Issues: JIT crashes in 64-bit Wii mode (Fixed)" href="https://bugs.dolphin-emu.org/issues/1">#1</a> 0x00007f8d93eff9f2 in ?? () from /usr/lib/libxcb.so.1<br>
<a class="issue tracker-1 status-3 priority-1 priority-lowest closed" title="Emulator Issues: Use pshufb to improve speed of paired single load/store instructions (Fixed)" href="https://bugs.dolphin-emu.org/issues/2">#2</a> 0x00007f8d93f012ff in ?? () from /usr/lib/libxcb.so.1<br>
<a class="issue tracker-1 status-3 priority-2 priority-default closed" title="Emulator Issues: Integrate PPC and DSP scheduling (Fixed)" href="https://bugs.dolphin-emu.org/issues/3">#3</a> 0x00007f8d93f01411 in xcb_wait_for_reply () from /usr/lib/libxcb.so.1<br>
<a class="issue tracker-1 status-3 priority-2 priority-default closed" title="Emulator Issues: rev9 32bit 1GB contiguous memory issue (Fixed)" href="https://bugs.dolphin-emu.org/issues/4">#4</a> 0x00007f8d9a8687c7 in _XReply () from /usr/lib/libX11.so.6<br>
<a class="issue tracker-1 status-3 priority-1 priority-lowest closed" title="Emulator Issues: Wide-screen support (Fixed)" href="https://bugs.dolphin-emu.org/issues/5">#5</a> 0x00007f8d9a85e701 in XQueryKeymap () from /usr/lib/libX11.so.6<br>
<a class="issue tracker-1 status-3 priority-2 priority-default closed" title="Emulator Issues: Throttle not working (Fixed)" href="https://bugs.dolphin-emu.org/issues/6">#6</a> 0x00000000007c7e98 in ciface::Xlib::KeyboardMouse::UpdateInput (this=0x3a3bf90)<br>
at ../Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp:54<br>
<a class="issue tracker-1 status-3 priority-2 priority-default closed" title="Emulator Issues: Dual Core seems to have little effect (Fixed)" href="https://bugs.dolphin-emu.org/issues/7">#7</a> 0x00000000007c07bd in ControllerInterface::UpdateInput (<br>
this=0x1770fc0 <g_controller_interface>)<br>
at ../Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp:143<br>
<a class="issue tracker-1 status-3 priority-1 priority-lowest closed" title="Emulator Issues: Cheat search system (Fixed)" href="https://bugs.dolphin-emu.org/issues/8">#8</a> 0x000000000060961d in SystemTimers::UpdateInputCallback (<br>
userdata=<optimized out>, cyclesLate=1)<br>
at ../Source/Core/Core/HW/SystemTimers.cpp:140</p>
Emulator - Emulator Issues #8311 (Fixed): Netplay shouldn't use an idle loophttps://bugs.dolphin-emu.org/issues/83112015-03-05T09:56:14Zdegasuswickmarkus86@gmail.com
<p>We use an idle loop in the netplay code:<br>
<a href="https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/Core/NetPlayServer.cpp#L108" class="external">https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/Core/NetPlayServer.cpp#L108</a></p>
<p>This waste lots of CPU, and has some critical components in it:</p>
<ul>
<li>m_ping_timer.GetTimeElapsed() <- syscall, so we'll generate as much syscalls as our operation system can handle</li>
<li>std::lock_guard<std::recursive_mutex> lks(m_crit.send) <- this mutex may be locked almost 100% of the time</li>
</ul>
<p>A good designed way would be to use locking events. Does enet support an event based usage?</p>
Emulator - Emulator Issues #5780 (Fixed): OGL: only update texture params if they changedhttps://bugs.dolphin-emu.org/issues/57802012-12-12T12:00:24Zdegasuswickmarkus86@gmail.com
<p>In the OGL backend, texture parameters will be set on every texture bind (so once per bound texture per indexed draw).<br>
Texture params are part of the texture object, so binding one texture will also set the old texture params of this texture.</p>
<p>So this patch check the params on every bind and set them on changes.</p>
<p>At least my gpu driver (nvidia 310.14 amd64 linux) will not cache texture params, so there will be a noticeable speedup.</p>