Quake3e Versions Save

Improved Quake III Arena engine

latest

1 month ago

Commits

  • 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