Already Did That
#2041 posted by SpecialBomb on 2016/06/02 05:36:09
The experimental drivers do help with qs, but effects like dynamic lights slow it down, and some other factors I haven't pinpointed yet. Would it be hard to allow OpenGL ES with qs?
Ok, Interesting
#2042 posted by ericw on 2016/06/02 08:22:55
adding full GLES support is possible, but relatively a lot of work.
there may be some simple tweaks to the lightmap format that would fix slowdowns with dynamic lights.. but we need some developer with a RPi to do it.
#2043 posted by mh on 2016/06/02 12:23:16
Would it be hard to allow OpenGL ES with qs?
It would need a rewrite of much of the renderer because it still uses a lot of glBegin/glEnd calls which don't even exist in ES. BSPs and MDLs IIRC use vertex arrays/VBOs but they're the easy ones to port.
#2044 posted by Spirit on 2016/06/02 13:30:48
It would probably be worth it on the long run but sacrifice compatibility for some ancient hardware maybe?
#2045 posted by Izhido on 2016/06/02 15:58:34
The network drivers for vanilla have this class-like structure with function pointers that are filled with the proper functions for a specific net driver. I don't currently see a reason why we couldn't use such a mechanism to incorporate multiple rendering engines. (id Tech 2, the engine for Quake II, actually uses that).
Also, if you're interested, I had to implement ES on the iOS VR target of my port... might guve you some useful pointers :)
#2046 posted by Spike on 2016/06/02 19:35:26
GLES1 pretty much just requires using vertex arrays instead of glBegin. The rest is basically just omissions. It should be easy enough to update quakespasm to use this, but you'll probably want to handle batching properly to compensate for the batch-merging work desktop drivers do with small glbegin batches.
GLES2 requires glsl too, which is a little bit more messy, but also offers significant speedups.
GLES3 is a strict superset of GLES2, thankfully.
FTE's gl renderer dates back to when glsl was still new (and slower). as a result it still copes just fine with glsl on some times and not others (also, yay q3 shaders).
tbh the only significant difference is whether glsl is available or not. There's a few extra limitations from using GLES, but tbh those things should probably be avoided even on desktop GL, so its not a huge problem really.
Of course, this is assuming you're willing to have gl1.1 as a minimum requirement - this may mean you need to use a quake3 minidriver instead of an older one, so I don't personally see this as a serious issue, even for those old cards.
Just Buy A Pi
#2047 posted by SpecialBomb on 2016/06/03 18:09:22
If you need to develop on one, they are like 35$ dude. I have no idea on your linux ability, but it shouldn't take long to learn how to code on one. Seriously, the OS comes with gcc and g++, it's super easy to compile anything.
Just Buy A Pi
#2048 posted by SpecialBomb on 2016/06/03 18:09:22
If you need to develop on one, they are like 35$ dude. I have no idea on your linux ability, but it shouldn't take long to learn how to code on one. Seriously, the OS comes with gcc and g++, it's super easy to compile anything.
Got A Duped Post, Please Remove Post 2048
#2049 posted by SpecialBomb on 2016/06/03 18:10:15
#2050 posted by Baker on 2016/06/04 01:09:34
All developers have their own interests and own things they are interested in contributing to a free project.
ericw may or may not be interested in this task.
It sounded like he was inviting someone else to step up the plate and pursue this item of interest.
Everyone likes to armchair manage what someone else "needs to do", but really free projects depend on new volunteers.
/One opinion, my opinions are often wrong.
I Have A Pi
and I really have no idea how to bloody use it. I'm sure if I struggle hard enough I could offer up some testing...
#2052 posted by mh on 2016/06/04 03:15:02
Seriously, the OS comes with gcc and g++, it's super easy to compile anything.
Yeah, type "make" and you can compile anything.
Riiiiight.
Let's get serious. Compiling stuff is the single most basic part of the build process. It's expected to be easy and it's expected to work. So the part of the toolchain that's supposed to be easy is easy? Big swinging mickey. Gimme decent debug tools and we can start talking.
F-
I wish compiling on OS X was easy. My other poject is a pita on El Capitan which i'll have to solve some time soon. They symlink gcc to freaking clang! and have separated the command line tools from Xcode in some mess i have to resolve. Mebee it's not too hard.
#2054 posted by Izhido on 2016/06/05 04:24:16
Xcode is good. Xcode is your friend. Accept the Xcode. Let it flow through you.</spooky>
#2055 posted by Joel B on 2016/06/05 06:48:23
You'll get the command-line tools if you install Xcode.
You can also get the command-line tools by running "xcode-select --install". In fact you should do that even if you've installed Xcode, since that command will also set up some default Unix/Linux-y paths for the linker and preprocessor (like paying attention to /usr/local/lib and /usr/local/include by default).
Mouse Stuttering?
#2056 posted by Hipnotic Rogue on 2016/06/15 23:00:14
Since an arm injury a few years ago I've only been able to play with a controller.
Today, feeling good, I thought I'd try a mouse in QS again in anticipation for the new Arcane Dimensions.
Sadly, I found that mouse movement 'jerked' or 'stuttered' every few frames or so. This doesn't happen when I use a controller.
Looking around I found some threads pertaining to other games having the same issue. It seems to be an SDL thing.
Is there a way to set raw mouse input in QS?
Does anyone else have this issue?
I have a Logitech g700s mouse on a Win 7 x64 PC with GTX 780 and i7 4770k.
And, no, it's not lag because my mouse is wireless! The mouse is as smooth as butter in other games. :)
#2057 posted by ericw on 2016/06/15 23:47:34
Are you using quakespasm.exe or quakespasm-sdl2.exe? (or the dev builds from http://quakespasm.ericwa.com/job/quakespasm-sdl2/ ?)
Try the -sdl2.exe one, it should use raw mouse input.
Another thing to try is setting "host_maxfps 60".
(I have this problem on OS X, where mouse events only arrive at 60Hz, and there is no raw mouse input in SDL1/2 on OS X.)
Thanks :)
#2058 posted by Hipnotic Rogue on 2016/06/16 11:29:59
I always use the most up to date dev builds (in this case 1308 and 1310).
Setting "host_maxfps 60" seems to have done the trick though. I had host maxfps set to 72. I presumed, having a 144Hz monitor that half the refresh rate would result in a more solid performance than 60Hz. You live and learn, I suppose.
By the way, while looking around for this issue I found that you're using an older version of the SDL2.dll. Is there any reason for that? Just curious. :)
I usually set my host_maxfps to 150.
#2060 posted by mh on 2016/06/16 18:43:09
Problem with variable host_maxfps in single-player Quake is that so much of the engine is FPS-dependent, and often in ways that are gameplay-breaking.
#2061 posted by ericw on 2016/06/16 20:12:47
Ok, glad to hear host_maxfps 60 helped. That suggests QS is only getting data from your mouse at 60Hz which is weird :-(. Try host_maxfps 150 as Fifth mentioned too, although I'm not sure how much physics starts to mess up at 150?
I found that you're using an older version of the SDL2.dll
It's a custom build by szo, made from the latest release (2.0.4) + some patches, details here.
MH - yeah, trying your Inside3d tutorial on decoupling the server / client FPS is on my wishlist.
Not noticed physics messing up at 150. I find Quake literally unplayable below my monitor refresh rate of 144. I get headaches and nausea.
#2063 posted by ericw on 2016/06/16 20:32:28
I need to get a 144Hz monitor!
Anything Greater Than 60
#2064 posted by mjb on 2016/06/16 20:43:37
I have a monitor that goes to 100Hz, and even that is a night/day difference. Highly recommended!
@ericw
#2065 posted by mh on 2016/06/16 20:55:31
MH - yeah, trying your Inside3d tutorial on decoupling the server / client FPS is on my wishlist.
I've better code since, unreleased but if you're ever looking at this I can give you a code dump.
|