Releases: ec-/Quake3e
Releases Β· ec-/Quake3e
Latest Build
2024-10-14
14-Oct-2024:
- Common: improved
wait
command handling, now it will wait exact amount of client/server frames - Common: allow src and dest buffers to be overlapped in
Q_strncpy()
for QVM compatibility reasons - Common: Use
nanosleep(2)
instead ofusleep(3)
-usleep(3)
was declared obsolete in POSIX.1-2001 and removed in POSIX.1-2008 andnanosleep(2)
was recommended to be used instead. - Server: cache
sv_maxclients
value to avoid potential crashes caused by VMs changing it at runtime - Server: save latched
sv_pure
state to dedicated variable - Server: suppress false hitch warning during map load
- Server: reworked/optimized gamestate retransmission/acknowledgment
- Server: don't change serverid during map restart
- Server: don't spawn loading clients during map restart
- Server: fix server resource leaks during client reconnect
- Client: rewrote
CL_WritePacket()
to allow proper packet duplication - which was intended by multiple function calls before - Client: Strip
\cl_aviPipeFormat
- Win32: report actual color bits and correct PFD count
- X11: request alpha bits for >=24 bit color profiles
- Docs: Create quake3e.md, update quake3e.htm
- Vulkan: increase MAX_IMAGE_CHUNKS from 48 to 56
- Vulkan: added missing texture mode setup in
GL_SetDefaultState()
- Vulkan: disabled
\r_ext_alpha_to_coverage
for now due to rendering artifacts on beyond4-wfa map - Vulkan: do not set transient flag for depth/stencil attachment when bloom (and thus - post-bloom pass) is enabled
- Vulkan: fix screenmap image layout transitions
- Vulkan: re-create swapchain on VK_SUBOPTIMAL_KHR as well
- Vulkan: improve flare visibility test code
- Vulkan: fixed various image layout transition synchronization issues
- Vulkan: applied fixes to some "Best Practices" validation layer errors
- Vulkan: add
\r_bloom_threshold_mode
and\r_bloom_modulate
cvars, similar to OpenGL renderer - OpenGL: allow all static tcGens/tcMods for VBO/environment mapping (assuming that we have all tcMod corrections applied before)
- Renderers: use
glConfig.stencilBits
instead of dereferencing\r_stencilbits
cvar - Renderers: apply lightmap texcoord correction only if lightmap is actually set
- Renderers: apply additional lightmap texcoord corrections when needed
- Renderers: do not merge single lightmap
- Filesystem: allow multiple basegames in fs_basegame cvar separated by '/'
- Filesystem: reset
fs_basegame
cvar to last separated item - Makefile: fix grep warnings in macOS builds
- macOS: app will search for pk3 inside and next to the app bundle
- Use SDL_WINDOW_FULLSCREEN_DESKTOP on macOS
2023-10-14
14-Oct-2023:
- Added many CVAR descriptions
- Added \vid_restart fast - to perform fast \vid_restart in current gfx context
- x86: print CPU brand string if available
- Fixed spurious bound action on +vstr key releases
- Fix stuck binds in some cases
- Misc: try to apply map-depending configuration from cvar \cl_mapConfig_<mapname> cvars
- com_affinityMask: allow handy binding of P/E cores on Intel's x86, added support for hexadecimal notation and '+'/'-' operators
- Sound: added ogg-vorbis support
- Sound: Use more precise conversion for fp32le sound buffers
- Sound: re-enable sound-mixing asm in MSVC solutions
- Renderers: Fix jumppads shaders on
q3wcp14
- Renderers: fix incorrect ovebright bits displayed at startup
- Renderers: Fix clamp to edge detection
- Renderers: allow using
*lightmap<num>
images in shaders - Renderers: fix potential crash in FixRenderCommandList()
- Renderers: make sure that merged lighmaps fits well into reported max. texture dimensions
- Renderers: make sure that we always configure dst blend bits
- Renderers: fix bloom latch state when switching back to opengl from vulkan
- Renderers: use more reasonable default backend color
- Also fix \screenshot levelshot taking not factoring scaled capture screen sizes.
- Vulkan: fix dlight regression on
q3dm1
- Vulkan: added some color-input optimized shaders, should improve FPS by up to 10% in bandwidth-limited cases (iGPUs)
- Vulkan: rebind indexes after legacy dlight pass before fog pass
- Vulkan: skip color/tex gen only if previous stage was not optimized and really calculated color/tex data
- Vulkan: fix depthFragment shaders in fog, allow fog-collapse for non-world shaders
- Vulkan: allow more color optimizations, with and without fog
- Vulkan: added entity-color optimization for single-stage shaders
- Added support for ppc64/ppc64le platforms
- Fix buffer overflow with \fdir cmd and file argument command completion
- Added \cl_drawRecording cvar to disable or make "RECORDING" demo message shorter
- Github-Actions: run linux builds on Ubuntu-20.04 for binary compatibility reason
- Win32: fixed crash on win11-x64/msvc during longjmp()
- Win32: fix potential null-pointer dereference in ExceptionFilter()
- Msg: check for error before checking value to avoid false-positive results
- Network: Use uint32_t as scope_id for ipv6 connections
- Server: fix formatting for some connection states in \status output
- Server: fix host player being dropped in TA SP
- cURL: updated prebuilt libraries and headers to version 8.4.0
- cURL: increase maximum buffer size
- cURL: fix deprecated warnings on modern versions
- vm_x86: convert "add reg, 128" to "sub reg, -128" to use 1-byte immediate value
- Fix & backport recent joystick code from ioq3
- Fix Info_RemoveKey() deleting only first key
- Fix info string trailing key issue
- Made rsqrt optimization hint really work
- Common: try to init logfile cvar as early as possible
- Stop using acstime for logfile date/time
- Cleanup Makefile
2022-10-14
14-Oct-2022:
- preserve \cl_reconnectAgrs between online mod changes
- fixed nested cgame command execution
- renderers: avoid potential division-by-zero for AGEN_PORTAL
- CMake: numerous improvements
- Vulkan: updated SDK headers, applied potential fix for molten-vk compatibility
- server: do not enforce non-zero level times at startup, for mod compatibility
- SDL2: fix escape key not sending a char event
- Vulkan: fixed insufficient attachment pool size for extreme case (antialiasing + supersampling + hdr + bloom)
- Vulkan: fixed error at \snd_restart (REF_KEEP_WINDOW context)
- video-pipe: use full (pc) color space and do not enforce particular rate for output audio stream
- OpenGL: setup TMU information in R_InitExtensions() to avoid potential errors with KEEP_WINDOW flag
- Implemented \in_forceCharset for SDL backend
- Renderers: fixed non-working \r_ignorehwgamma, \r_overbrightbits now can operate independently from \r_ignorehwgamma in some cases
- Vulkan: handle special DRM/KMS case (FIFO+maxImageCount==0), use 4 swapchain images for that
- Fixed missing video/audio frames during multi-segment avi rendering
- Fix client forgetting password when it is set in main menu
- Renderers: make sure that R_ColorShiftLightingBytes() is not picking more data that we actually need/have
- SDL2: fixed crash when some cvars (like \in_keyboardDebug) may be dereferenced before initialization, unified that behavior with win32 backend
- Better support for non-standard protocols (71-compat etc.)
- Vulkan: use minimal VkApplicationInfo at instance creation
- Vulkan: disable anisotropy for nearest-sampling modes
- win32: show/hide mouse cursor only if it has been not suppressed by OS
- Added con_autoclear cvar
- Added \kicknum, \kickall, and \kickbots commands, patch by Ensiform
- Always keep bots, even with \devmap
- Allow 8x multisampling in traditional (non-framebuffer) MSAA
- Improve the default texture quality settings:
-
- Use the highest texture quality
-
- Use 8x anisotropic filtering by default
- Renderers: make sure that amplitude for TMOD_STRETCH is not zero
- Fixed stack overflow in \varfunc
- Fixed potential out-of-bounds access caused by large s_paintedtime
- Added \con_scale - to scale console font size relative to default smallchar width/height
- Fixed erroneous gamma setup in windowed mode
- Handle negative color shift that caused black lightmaps
- Use differential time and interval comparisons whenever possible
- Various botlib and QVM fixes
- Vulkan: mark offscreen rendering unavailable for NVidia on linux too
2021-10-14
- Filesystem: close all handles when switching to other game directory
- Sound: fixed potential division-by-zero in S_GetSoundTime() in case of failed DirectSound initialization, reworked shutdown functions
- Unix: output only printable chars in console
- SDL: removed archive flag for \in_nograb
- QVM: added more optimizations, removed unsafe x86 optimizations with disabled VM_RTCHECK_DATA
- QVM: always force either range checks or data mask operations
2021-07-20
- vm_x86: implemented new bytecode compiler with dynamic register allocation and many optimizations similar to aarch64/armv7l, brings ~2x performance increase
- vm_aarch64, vm_armv7l: added more optimizations, yields another ~40% performance increase
- win32: allow copying selected text from dedicated console via keyboard shortcuts
- win32: fixed input regression caused by previous fix for high-dpi mice in win10 insider builds
- win32: fixed application crash caused by hardened longjmp() in recent win10 versions
- win32: fixed broken minimize function after \vid_restart
2021-05-27
- QVM: more correct hanling of NaNs in bytecode compilers
- QVM: fixed non-working RocketArena3 server code
- Cvars: avoid misleading warnings when changing ROM variables
- Cvars: allow override "protocol" from command-line
- Sound: reduced lag during video capture
- SDL2: (somewhat) fixed non-working console key for non-US keyboard layouts
- Vulkan: fixed some broken debug features
- Vulkan: fixed resource leaks and incorrect layout transitions during image capture
- Vulkan: avoid redundant scissor updates
- Vulkan: use correct texture bundle for lighting, use static uniform location to avoid pushing garbage from stack variables
- Vulkan: fixed crash with \r_showtris 1 and \r_fastsky 1, fixed environment shader selection
- OpenGL: fixed crash with \snd_restart
- Do not light up shaders whose sort comes after insertion point (SS_FOG)
- Unified gamma correction between OpenGL and Vulkan renderers
2021-03-28
- Vulkan: implemented super-sample anti-aliasing, can be enabled via \r_ext_supersample 1, requires \r_fbo 1
- Vulkan: added \r_presentBits to support HDR monitors, added \r_dither to control dithering in such cases
- Vulkan: added more multitexturing optimizations
- OpenGL: fixed incorrect image capture with supersampling and renderscale enabled
- OpenGL: fixed texture generation for environment-mapped shaders in VBO
- OpenGL: disable bloom if multitexturing was disabled via \r_ext_multitexture 0
- Renderers: dereference $vid_width and $vid_height to actual rendering width/height inside extended shaders
- Win32: fixed crash on nvidia systems when using Vulkan renderer and Win+D hotkey
- Win32: fixed accidental focus losses when using high-dpi mice
- Win32: fixed non-working \in_minimize in windowed mode
- Win32: catch rare DescribePixelFormat() crash
- Fixed error raised by messagemode 3/4 called without running cgvm
- Fixed another crash in FixRenderCommandList()
- Fixed potential crash with fog table
- Allow \reconnect to work after client restart
- Added warnings in developer mode to know why and when a sound isn't played
- Added \r_dlightSaturation
- Unlocked \r_lodCurveError
- Check integrity of loaded maps and models
- SDL2+Wayland compatibility fixes
- Various fixes and improvements