OpenGL 4.x is required because tessellation shaders are used for rendering terrain.
Yes, it works on linux. The skybolt github CI build uses linux, I do most of my development on windows however.
Too bad, the old 9800GTX won't cut it then?
I was hoping to use it for a linux build instead of my piece of crap attempt of an OpenGL client, I guess it will have to wait till I do an upgrade.
Just for the heck of it, I tried it anyway?
Here is the feedback in case somebody wants to try something similar :
Had some minor issues compiling it (checked out from your v1.2 branch), it required a few modifications :
Code:
-#ifdef unix
+#if defined(unix) || defined(__linux__)
std::sqrtf is not recognized by the compiler (g++ 9.4.0 in c++17 mode) for some reason.
The FFT ocean module also gave some trouble, looks like xsimd is not geared toward backward compatibility...
Hacked in some code but I don't know if it works properly because I don't have a windows box to test it with.
Code:
-typedef xsimd::batch<float, 4> Simd4;
+typedef xsimd::make_sized_batch_t<float, 4> Simd4;
Code:
- for (int i = 0; i < 4; ++i)
- {
- ht0._Val[0][i] = mHt0[index + i]._Val[0];
- ht0._Val[1][i] = mHt0[index + i]._Val[1];
- ht0Conj._Val[0][i] = mHt0Conj[index + i]._Val[0];
- ht0Conj._Val[1][i] = mHt0Conj[index + i]._Val[1];
- }
+ Simd4 re{mHt0[index + 0].real(), mHt0[index + 1].real(), mHt0[index + 2].real(), mHt0[index + 3].real()};
+ Simd4 im{mHt0[index + 0].imag(), mHt0[index + 1].imag(), mHt0[index + 2].imag(), mHt0[index + 3].imag()};
+ ht0 = complex_type_simd4(re, im);
+
+ Simd4 rec{mHt0Conj[index + 0].real(), mHt0Conj[index + 1].real(), mHt0Conj[index + 2].real(), mHt0Conj[index + 3].real()};
+ Simd4 imc{mHt0Conj[index + 0].imag(), mHt0Conj[index + 1].imag(), mHt0Conj[index + 2].imag(), mHt0Conj[index + 3].imag()};
+ ht0Conj = complex_type_simd4(rec, imc);
GLuint toSrgbInternalFormat(GLuint format) complained about GL_COMPRESSED_RGBA_S3TC_DXT3_EXT not supported, I blindly added this :
Code:
+ case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
+ return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;
After juggling with dependencies, switching from GLEW to glad, hooking in glfw and imgui (and thanking the gods for the glCopyImageSubDataNV extension), I could get this result, but with lots of "Texture::getCompressedSize(...) : cannot compute correct size of compressed format (35916) returning 0" warnings that may or may not explain such colorful ISS?

There are some weird black regions that follow the earth around, and what looks like some depth issue between models and clouds.
There are probably driver bugs on top of the hacked in way to make it work on outdated hardware...
Anyway, keep up the good work, the clouds and atmosphere are stunning ; this could be a solid alternative to D3D clients for us folks out there with no windows boxen?