E: D @800x600 and ~8 FPS, So Why Am I Happy?

A raucous three straight days of programming to get around the last technical issue, combined with modifying a heat sink off a PowerEdge 1750 server to cover CPU / GPU overheating, finally paid off last evening. I was able to grab this video before I had to shut the system down, due to temperature concerns. I've burned out two units previously and had to add the huge heatsink as I didn't want to melt my last working box. The heatsink is actually larger than the motherboard itself and with modification is effectively cooling all major components. Even so, the operating temps are ~82C which is borderline.

The programming is what I'm most proud of. I created a Pseudo GPU to intercept any DX 11 calls, parse them to OpenGL ES 2.0 standard (Still working on Vulkan, but there's some huge translation issues remaining) through a translation-table map to the VideoCore IV GPU for processing. There's some lag created as a result, but not as much as I expected. The stability of the C++ code is excellent, I just can't run it on the hardware for long due to temperature concerns.

It's playable, barely. I can run it at 720 res but at under 1FPS. At 800x600, with all graphics enhancements turned off or low, I get 8-10 FPS, but I only have time to take off, turn around and land before hitting thermal limits. As a proof of concept, it rocks. I used a docking computer to get around the jerkiness of the low FPS and command lag.

Next step is to try water cooling this sucker and see how long I can extend the time. Here's the video. I've been up all night getting this finished. I'm off to bed. I think I've earned it.

[video=youtube_share;hoGMyyWpaR0]https://youtu.be/hoGMyyWpaR0[/video]

NOKrv3P.jpg


UPDATE - ADDED LATER

I've been asked to provide more detail on the programming language I used, the translation map coding plus further details on the Pi hardware setup and video.

First, the big question. Why do this on the Pi instead of Linux on PC? It's a matter of scale and a lot easier to suss out the hardware on the Pi. It's very well documented and uses a discrete CPU / GPU. Second, OpenGL v2.0 (Compared to modern Vulkan on Linux) is a much more fundamental API and easier to figure out. Raspberry Pi's have a tight community of coders and many of them assisted me with some key questions. They had no idea what I was doing, but my issues were generic enough not to arouse curiosity.

The issue of the Pseudo GPU was handled easily. It's set up as a pipe for all sent / received commands to or from the translator map engine. Grand total of six lines of code and an ini file for the parameters.

1) Hardware: To prepare, I took a pair of side cutters and removed the IO pins that stand proud of the mobo. They were directly in the way of where the heat sink needed to go and would have shorted out on the metal regardless, so they had to go. I then covered the nubs with black electrical tape to avoid any inadvertent shorts.

The heat sink was not flush with the board, so I used a couple of pieces of milled copper I'd salvaged from an old Solaris server. One each for the CPU and GPU. Thermal compound was applied and the heat sink lowered into place on top. I tested the idle temps on both and got a 15C drop than the tiny aluminum heat sinks the Pi kit comes with.

NOTE: People asked how I determined the temps as none were displayed on the video. I used a simple handheld infrared thermometer that I bought in the hardware store.

The heat sink is not secured, as I couldn't find a way to screw it down safely, so gravity was the only thing used. It is massive and didn't move at all. :)

2) The translator map 'engine' I created was based on the documentation found here:

https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/

https://msdn.microsoft.com/en-us/library/windows/desktop/ff476345(v=vs.85).aspx

All it did was change DirectX 11 calls from the game into Open GL 2.0 compliant calls to the GPU. There needed to be some reverse traffic parsed as well and that took the longest time as I needed to determine what was essential and what was not. DX 11 is quite chatty. Unnecessarily so, it turns out. Forgive the lack of detail, but the translation process is complicated and would take too long to explain. I did comment my C++ code heavily and will post the main code below in a spoiler to save space. It is GPL licensed, so please respect that.


Thanks for reading this far. No, there is no code. Yes, it's an April Fools joke. If you opened this spoiler expecting to see source code, then I think I got you. :)

I logged onto a VPN to New Zealand at 01:40 AM, 1 April (their time), uploaded the YouTube video and posted the thread you are reading now. I'd prepared it a day earlier and spent a lot of time getting it to look right. Therefore, it was officially posted on April Fools Day in NZ and seen by most of the world on May 31st. Got to love the International Date Line. :p

The video was taken on my PC running at 800x600 with all graphics enhancements turned off or low. I then added the odd stutter with my video editor to make it look good. Well, look bad in this case. The video of my Pi shutting down was taken separately and then both vids were melded together. I prepared my Pi home directory ahead of time with several empty directories, a couple of impressive looking script files and 17GB of garbage files to make it look like a lot of space was being used. The rest was window dressing.

I can program, but not to an API level. I read up on the topic for ten minutes, used some of the key phrases from some API articles and forums, while referencing the RaspPi web site for their hardware specs. While pure , it did end up fooling experts, so job done. :)

The heat sink is from a PowerEdge 1750 server. It was used with Xeon processors. I use it on my bench for keeping hard drives cool when running extended CHKDSK repairs on multi-TB drives. I lay it on top of the Pi and snapped a photo with my phone. That's the extent of the "modifications" I did.

If I had the talent to rig up a Linux version of E: D, I would certainly do so. I do feel there is a need for it and encourage the idea at every opportunity.

Very few people twigged to it being a hoax. It looks like a lot of people appreciated the post. I hope you got a laugh out of it. There was certainly no malice intended.

o
VYF2pvr.jpg


Cheers all. See you next year. Not that I have anything else planned or anything. ;)
 
Last edited:
Have you considered a small aquarium tank with mineral oil as a cooling solution?
I'm impressed you got ED to run natively on an RPi3.
 

Deleted member 38366

D
Hehe, very nice...

I remember (a long, very long time ago) Alpha-Testing for 3D Analyzer, a nifty tool that attempted to re-route DirectX8 (Shader) calls into DirectX6/7 calls or simply replace them with NUL-Rendering, in order to allow non HW T&L and Shader-equipped DX6 Cards to run modern titles.
Got us some very interesting Results back then, but unfortunately the Dev ceased working on that Project.
 
Last edited by a moderator:
I haven't any idea what you've actually done here?
I'm going out on a limb guessing from the very end of the video, and saying that your GUI looks like it may be some flavor of linux?

Linux is ok, I suppose, if you like having to do this much work for, well, anything.

I built a PXE server once on Ubuntu. It took two weeks to make it work and I haven't touched it since.

I guess I just don't mind paying for my hardware and software to be able to just sit down and use it.

Windows 10 Enterprise, Intel Core i7, GeForce GTX 1080, 32 GB RAM, 1 TB SSD, 2 2 TB SATA HDD.. soon to add an Avegant Glyph to my collection.

But hey, whatever amuses you I suppose, right?
 
I haven't any idea what you've actually done here?
I'm going out on a limb guessing from the very end of the video, and saying that your GUI looks like it may be some flavor of linux?

Linux is ok, I suppose, if you like having to do this much work for, well, anything.

I built a PXE server once on Ubuntu. It took two weeks to make it work and I haven't touched it since.

I guess I just don't mind paying for my hardware and software to be able to just sit down and use it.

Windows 10 Enterprise, Intel Core i7, GeForce GTX 1080, 32 GB RAM, 1 TB SSD, 2 2 TB SATA HDD.. soon to add an Avegant Glyph to my collection.

But hey, whatever amuses you I suppose, right?

It's running on one of these:

raspberry_pi_3_1_1.jpg


A $35.00 complete computer

- - - Updated - - -

Op, very nice work. I have a bunch of pi's as part of my Security, CCTV and Media/Entertainment systems at home. I love seeing what people can do with them +1
 
Last edited:
Back
Top Bottom