IRC log for #bzflag on 20191029

00:03.38blast007if I can find the power brick for it, I've got an old laptop with an GeForce Go 7200, iirc
00:04.32blast007I had previously tried to replicate the issue on a GeForce 7900 GTO, but I think it was working correctly there
00:37.14*** join/#bzflag _I_Died_Once (~I_Died_On@unaffiliated/idiedonce/x-1828535)
01:50.50macsformeI'm not sure how specific you can get when you request a specific version of OpenGL support when creating a context... I think it might be limited to just "core" versus "compatibility" on some platforms
01:52.18macsformeI know SDL 2 exposes the function to request something specific, but I'm not sure you will actually get back what you requested (and not something newer)
02:01.34macsformeI think he said in the past he wants an OpenGL 3.0 context without giving up deprecated functions... I'm not sure you can get that... for example, on macOS Mojave, the compatibility profile is only OpenGL 2.1
02:03.41macsformeas far as SDL 2 versus other platform code, I agree 100% with blast007's guidance for the time being
02:05.31macsformeas far as implementing GL 2.0 support, I would call for a PR so there is scrutiny and a feedback period prior to pushing it
02:07.15macsformeI know from reviewing it before, there were several issues I would like to give input on
02:11.29macsformefor example (off the top of my head), where to store shader files (I think he just threw them in data/), and I think he ripped out the low and medium detail tank models, whereas we already have all the converted models in the GLES port that we could bring over
02:15.13macsformetupone: how many distinct commits do you think you will break it down into?
04:20.08*** join/#bzflag fanta1 (~fanta1@p200300F76BC31700F108EB176FE3A86D.dip0.t-ipconnect.de)
05:52.11tuponemacsforme: I guess about 20
07:05.48*** join/#bzflag fanta1 (~fanta1@p200300F76BC31700F108EB176FE3A86D.dip0.t-ipconnect.de)
07:35.11*** join/#bzflag dngor (abuse@c-73-244-0-31.hsd1.fl.comcast.net)
07:35.11*** join/#bzflag dngor (abuse@p3m/dngor)
12:38.44*** join/#bzflag dcat (~dcat@c-98-244-106-246.hsd1.va.comcast.net)
14:06.52*** join/#bzflag Sgeo (~Sgeo@ool-18b982ad.dyn.optonline.net)
14:15.54*** join/#bzflag Sgeo (~Sgeo@ool-18b982ad.dyn.optonline.net)
17:49.43blast007tupone: do you know about bgfx?  https://github.com/bkaradzic/bgfx   It allows using a GLSL-like shading language to target Direct3D, OpenGL, OpenGL ES, Metal, Vulkan, and WebGL.
17:51.47blast007It's something I have my eye on for after 2.6.
17:52.46blast007Given that Apple has indicated that they plan to ditch OpenGL, this would let us target Metal without specifically having to maintain two distict rendering targets.
18:02.19blast007I believe the general idea for now would be to get to OpenGL 2.1, shift to using shaders, and then be able to migrate to OpenGL 3.2 Core Profile.
18:02.34tuponeI don't know about it. Lets see if it survives a couple of year
18:03.16tuponeWhat about 3.0 (the old profile)? MacOS is not suporting it ?
18:03.42blast007sounds like the only support 2.1 in compatibility mode, but their 3.2 is core only
18:03.48blast007like they*
18:04.03tuponeI need FrameBuffer for shadowing (not yet done).
18:04.32tuponeWe could select 2.1 and then abort if framebuffer is not supported
18:05.25blast007are you referring to a specific extension?  ARB_framebuffer_object or ARB_framebuffer_sRGB?
18:05.45tuponeFrame buffer object to write the zbuffer on it
18:06.39tuponeBut I have not written any code yet, just remember some tutorial
18:06.48blast007https://developer.apple.com/opengl/OpenGL-Capabilities-Tables.pdf
18:08.07blast007that doc covers macOS 10.7, 10.8, and 10.9, in both legacy OpenGL and Core OpenGL
18:08.12tuponethanks. I bookmarked it
18:08.48blast007I had also compiled a rough list of GPUs based on what version of OpenGL they supported: https://gist.github.com/blast007/917f72b59fac372fb2f09cd2f555b94f
18:11.24tuponeOne step I will do (if you agree, but if not I need to rework heavily my code) is to remove low quality/Medium quality, to always enable lighting etc etc (I will do a PR)
18:12.42blast007'low/medium quality' referring to the tank models or the overall quality modes?
18:12.58tuponeoverall quality
18:13.47tuponedoes someone still use low quality ? A full green floor with some line ?
18:13.58blast007oh most certainly
18:14.15blast007I'm quite sure there are people that run in low with the textures turned off :)
18:14.33blast007some people still run on Windows XP even
18:14.55blast007(though I'm kinda killing that off sooner than later)
18:15.07tuponeIf we ask openGL2.0 those people continue to play with that ?
18:15.47blast007I'm not sure what GPUs they have
18:16.24macsformewhat is the problem solved by eliminating those quality modes and requiring lighting always on?
18:16.59tuponemacsforme: simplify the code on which I'm working on.
18:17.17macsformecan you be more specific?
18:17.18tuponeThere are a lot of variant that I have eliminated.
18:18.56blast007I don't think we should eliminate the quality setting, but we can surely move the goal posts a bit or tweak what it actually does.
18:19.43blast007A lot of games, for instance, have Low, Medium, High, (Ultra), and Custom.  These quality settings just have preset values for the other graphics settings.  If you tweak an option manually, it changes it to Custom quality.
18:19.51tuponeThis is what I have done. High -> Low, Extra -> High
18:20.35tuponeBut we can review. I don't want to put my code on git, just put our code
18:22.26tuponeFot the Tank Model I had to change the High Quality Tank to draw any part with a single glDrawArray. I did not for the other lower res model because is a work (adding degenerate triangles to draw all with a single call). If some do this work or it is already done, I have no problem
18:24.15blast007with regards to the tank model, is this something we could revamp as part of this?  I don't know much about model formats, but is there a format that can have LODs built-in?  Then we could have multiple LODs for our tank and select them based on distance.  And we could have a quality control that limits the maximum quality LOD that would get picked.
18:25.05tuponeNow is not selected based on the distance, AFAIK
18:25.19blast007right
18:26.07tuponebased on distance and FOV
18:27.03blast007https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Vendor/MSFT_lod/README.md
18:29.23tuponegood, but that does not match the free time I have :)
18:29.57macsformeyou converted the tank model by adding degenerate triangles?
18:30.00blast007yeah, not necessarily saying *you* have to do that - just that it's an option we may consider
18:30.29tuponemacsforme: only to add a polygon to an other
18:31.04macsformeI don't understand
18:37.12macsformeI converted the models by a script that parsed the triangle strips, triangle fans, etc. and exported everything as arrays of triangles
18:52.38macsformeif you mean you converted each piece into one triangle strip (or similar) using degenerate triangles, sounds like quite a feat
19:07.54tuponeplease translate
19:09.57tuponeI added some point between the last point before glEnd and the first after glBegin. If you found a script doing that I'm OK with that. Maybe I lost some hour
19:14.09blast007https://github.com/macsforme/bzflag-embedded/tree/embedded/src/geometry/models/tank
19:14.37blast007"Converted tank renderer to use triangles only and to use DrawArrays instead of OpenGL display lists."
19:16.53tuponeso the primitives is GL_TRIANGLES
19:20.03tuponeIt is quite expensive as a number of points but maybe is not so different in term of performance
19:21.12blast007I'm not sure if that's the code that macsforme is referring to.
19:23.28tuponeGL_TRIANGLES is using 3 * n point. GL_TRIANGLE_STRIP is using 2 + n points . I'm adding some degenerate triangle so is a bit more
19:23.59tuponeat the end is not a big deal
19:25.21tuponewhat does "sounds like quite a feat" mean ? Not my mother tongue
19:25.42tuponelot of work ?
19:26.22macsformehow else would you do it? for example, the high barrel is a triangle fan plus a triangle strip... you can't combine those two with just a degenerate triangle in between...
19:26.47tuponeI transformed the triangle fan in a strip
19:26.53tuponeA lot of work
19:27.15tuponeone or mote
19:27.18tuponemore
19:27.37macsformeit means a great accomplishment, good/hard work, etc.
19:27.47tuponeok
19:28.14macsformeso you added points also
19:28.59tuponeNo, I don't. I mean I added some already existing point, no just the last
19:29.21tuponeI duplicated them where it needed
19:30.04macsformeright, that's what I meant
19:30.50tuponeReally I don't know if the work done was really needed for the performance
19:31.31blast007well we have two versions of it now, so we could compare, right?
19:31.50*** join/#bzflag Sgeo (~Sgeo@ool-18b982ad.dyn.optonline.net)
19:31.54macsformeI doubt there is any performance difference, just memory cost
19:32.11tuponeI guess that for the low / medium tank part we could go with GL_TRIANGLES
19:32.13blast007our geometry size is pretty tiny even on the high :)
19:32.19blast007s/size/count/
19:35.43macsformetrue
19:36.45blast007hehe... I bet even with a server maxed with 200 players there'd still be less geometry than modern games have in a single vehicle
19:39.16macsformeI think we want straight triangles over wasted geometry trying to fit triangle fans into strips, etc... even for the high quality models
19:41.09macsformeplus they were converted by script rather than by hand, reducing some human error factor
19:42.26*** join/#bzflag disco- (~disco@unaffiliated/disco-)
21:06.18BZNotifybzflag: 03atupone 03opened pull request #222 "Require openGL context 2.1" (06https://git.io/JeuAe)
21:22.20*** join/#bzflag spldart (~spldart@bzflag/contributor/spldart)
21:22.20*** mode/#bzflag [+v spldart] by ChanServ
21:25.17BZNotifybzflag: 03atupone review_requested pull request #222 "Require openGL context 2.1" (06https://git.io/JeuAe)
21:25.18BZNotifybzflag: 03atupone review_requested pull request #222
23:10.34*** join/#bzflag _I_Died_Once (~I_Died_On@unaffiliated/idiedonce/x-1828535)
23:54.33*** join/#bzflag nitroxis (n@nxs.re)

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.