fix environment-mapping texcoords in VBO shaders (Eugene)
2023-10-14
7 months ago
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
1 year ago
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
2 years ago
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
2 years ago
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
3 years ago
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
3 years ago
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
2021-01-16
3 years ago
Win32: try to catch exceptions instead of silent crashing
Win32: made unhandled exceptions non-fatal
Sound: backported some fixes from ioq3, improved skip protection and reduced latency
Client: made console hide/display speed do not depend from \timescale
Client: updated built-in jpeg library version from 8c to 9d
Client: allow setting window title via command-line cl_title cvar
Renderers: avoid using detail textures for lighting stage
Renderers: fixed shader parsing regression introduced by optional firstPerson key
Renderers: reverted color correction for external lightmap atlases
Vulkan: list all available GPUs at startup
Vulkan: added option to automatically select discrete/integrated GPUs via \r_device values -1 and -2
Vulkan: changed \r_device default to -1 (auto-select first discrete GPU)
Vulkan: fixed potential crash caused by incorrect index offset bond
Miscellaneous fixes and improvements
2020-10-31
3 years ago
Allow changing extension for \video-pipe output files
More optimizations for vm_aarch64
Fixed ResampleTexture: max width error in renderers
Fixed crash in linux client caused by unitialized cvars, added backtrace output for debug builds
2020-09-21
3 years ago
Client: automatically rescale console chars height for resolutions greater than FullHD
Vulkan: do not crash if validation layer is not available in debug mode, some other minor fixes
Added support for Raspberry Pi 4, Vulkan renderer seems to work fine with its beta driver
Added very fast bytecode compilers for 32/64-bit ARM processors, slight improvements for x86