Project

General

Profile

Actions

Emulator Issues #6946

closed

Remove vertex streaming hack

Added by NeoBrainX over 10 years ago.

Status:
Fixed
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's the problem? Describe what went wrong in few words.
The vertex streaming hack is a hack for a nonexistant problem.

What did you expect to happen instead?
Use buffer_storage or pinned memory as clean solutions for hardware which supports it. VSH is a tiny bit faster but that doesn't justify such an incredible hack.

This will make Dolphin slower on GPUs which don't support these extensions (i.e. old ones, don't know how old though). I wouldn't consider this fact important enough to warrant keeping the hack.

Actions #3

Updated by JMC4789 over 10 years ago

The Vertex Streaming Hack is only useful for the Geforce 8xxx, 9xxx, 2xx, and 3xx series. On top of that, these older cards were sometimes unable to really get much of a boost. I do know my old GTX 280 did fairly well with Vertex Streaming Hack, but I've seen a lot of laptop cards get very little boost (my moderately powerful GTX 560m gets a sizable boost, but also supports the new buffer system and gets the boost.)

From a non-performance perspective, removing the hack makes sense. It's a theoretically dangerous hack (see: Linux + VSH on any 2xx or older nvidia) and can be done properly with modern NVIDIA cards. It's never easy to make a decision to just "lose" performance. I don't know if there should be urgency to remove it, (maybe a post major release removal, aka after 4.1 or 4.5 or 5.0 or whatever comes next) or not. Honestly, it doesn't affect my GPU, so I'm not the right person to ask.

As far as VSH goes, OpenGL has made incredible strides since it was introduced, and is by no means a lameduck in performance like it was when the Hacked Buffer Upload option was first enabled.

Actions #4

Updated by MayImilae over 10 years ago

For reference of those not in the IRC so no one freaks out: the 332.21 WHQL Nvidia drivers fixed their bug in buffer_storage. More or less allowing what the vertex streaming hack to be done at OpenGL spec. Affects Fermi and newer Nvidia cards.

If the vertex streaming hack is removed, we're going to need to make sure there's something somewhere visible where we tell everyone to update their Nvidia GPU drivers.

Actions #5

Updated by degasus over 10 years ago

As ARB_buffer_storage is useful on nvidia drivers since one week, I'd wait a bit (eg a month?).

Also what's the case for intel drivers? Iirc there was also a big speedup there (but I haven't tried buffersubdata, maybe it was also because of a threaded driver).

i965 is fine with map_and_*, may someone please check r600+radeonsi? Nouveau doesn't matter as it doesn't support VSH.

Actions #6

Updated by degasus over 10 years ago

btw, current nvidia on linux is still broken with ARB_buffer_storage

Actions #7

Updated by NeoBrainX over 10 years ago

Keeping GPU drivers up to date is common sense. So either way, we'll probably have to tell people on the forums a gazillion times that they should update their stupid nvidia driver, but I don't consider as something we should have in Dolphin itself (it would just be one of those warnings which are more confusing than useful).

Actions #8

Updated by MayImilae over 10 years ago

I was only suggesting something like an article on the main site or a forum thread.

Actions #9

Updated by NeoBrainX over 10 years ago

I'm also against article spamming for this sort of stuff, but a forum thread sounds fine indeed. An additional notice on social media would work, too.

Actions #10

Updated by martin.herrman over 10 years ago

I'm currently using this hack on my linux box with a GTX660 video card. Without this hack, sound stutters. Please keep it in until there is a proper solution available for Linux with NVidia driver as well :-)

Actions #11

Updated by degasus over 10 years ago

martin: buffer_storage is such a proper solution, but the driver just isn't released now...

Actions #12

Updated by NeoBrainX over 10 years ago

  • Status changed from New to Fixed

Fixed by revision f1adc56a56d1.

Actions

Also available in: Atom PDF