Jump to content
The Dark Mod Forums
MirceaKitsune

View shrinks while underwater

Recommended Posts

https://bugs.thedarkmod.com/view.php?id=5068

Sometimes, when going underwater, the shader responsible for blurring the view will shrink the image to roughly 1/4 of the screen (1/2 both horizontally and vertically) and position it in the lower-left corner, while leaving a jumble of textures to display in the background. This only seems to happen on rare occasions; My latest test suggest it occurs if the player has taken any damage and the health bar is showing up on the HUD. I'm running TDM 2.07 x64 on Linux (openSUSE Tumbleweed) with the free video drivers (amdgpu).

penny2_1_2019-11-26_02.58.29.jpg

Share this post


Link to post
Share on other sites

Sorry for going somewhat off topic but I've seen this problem before in fhdoom and it can be a clue for TDM has well. When using a custom post process glsl shader, a small window at the lower left corner of the main window shows up, the effect works in the small window and the rest of the screen gets like you said.  I know almost nothing about shader coding, but it could be connected to the way id tech 4 renders the screen first to 640x480 then converts it to the users screen size after.

Here is one of the shaders with problems, for those that want to see it.

Btw this code was not written totally by me (just made changes to try blindly convert it to fhdoom), this is a modification of a shader from Total Chaos a free game (gzDoom engine), nice game btw and credit for it should be giving to them.

Btw how do you hide text in the forum? (so the reply doesn't get so big)

hope this helps.

Global.inc

#version 330
#extension GL_ARB_shading_language_420pack: enable

uniform mat4 rpModelMatrix;
uniform mat4 rpViewMatrix;
uniform mat4 rpModelViewMatrix;
uniform mat4 rpProjectionMatrix;

uniform vec4 rpLocalLightOrigin;
uniform vec4 rpLocalViewOrigin;
uniform vec4 rpLightProjectionS;
uniform vec4 rpLightProjectionT;
uniform vec4 rpLightProjectionQ;
uniform vec4 rpLightFallOff;

uniform vec4 rpBumpMatrixS;
uniform vec4 rpBumpMatrixT;
uniform vec4 rpDiffuseMatrixS;
uniform vec4 rpDiffuseMatrixT;
uniform vec4 rpSpecularMatrixS;
uniform vec4 rpSpecularMatrixT;

uniform vec4 rpColorModulate;
uniform vec4 rpColorAdd;
uniform vec4 rpDiffuseColor;
uniform vec4 rpSpecularColor;

uniform vec4 shaderParm0; //this shaderParm's seem to be connected to the ARB program.local[0], etc
uniform vec4 shaderParm1;
uniform vec4 shaderParm2;
uniform vec4 shaderParm3;

uniform mat4 textureMatrix0;

uniform int rpAlphaTestEnabled;
uniform float rpAlphaTestThreshold;
uniform vec4 rpCurrentRenderSize;

uniform vec2 rpClipRange;
uniform int rpDepthBlendMode;
uniform float rpDepthBlendRange;
uniform float rpPomMaxHeight;
uniform int rpShading;
uniform float rpSpecularExp;

uniform int rpShadowMappingMode;
uniform mat4 rpSpotlightProjection;
uniform mat4 rpPointlightProjection[6];

uniform vec4 rpGlobalLightOrigin;
uniform vec4 rpShadowParams; //x=minBias, y=maxbias, z=fuzzyness, w=samples
uniform vec4 rpShadowCoords[6];
uniform vec4 rpShadowMapSize[6];  //xy = width/height of far plane, zw = near/far clip distance
                                  //TODO(johl): is width/height correctly set for non-parallel lights? 
uniform float rpCascadeDistances[5];
uniform mat4 rpInverseLightRotation;

Vertex shader

#include "global.inc"

layout(location = 0) in vec3 vertex_position;
layout(location = 1) in vec2 vertex_texcoord;

out vs_output
{
  vec2 texcoord;
} result;

void main(void)
{
  gl_Position = rpProjectionMatrix * rpModelViewMatrix * vec4(vertex_position, 1.0);  

  vec4 vertex_texcoord4 = vec4(vertex_texcoord, 1.0, 1.0);

  result.texcoord.x = dot(rpBumpMatrixS, vertex_texcoord4);
  result.texcoord.y = dot(rpBumpMatrixT, vertex_texcoord4);
}

Pixel shader/frag program

#include "global.inc"

layout(binding = 0) uniform sampler2D currentRender;

in vs_output
{
  vec2 texcoord;
} vert;

out vec4 fragColor;

vec2 fixScreenTexCoord(vec2 st)
{
  float x = rpCurrentRenderSize.z / rpCurrentRenderSize.x;
  float y = rpCurrentRenderSize.w / rpCurrentRenderSize.y;
  return st * vec2(x, y);  
}

void main()
{
	float samples = shaderParm0.x;
	float amount = shaderParm0.y;
	float dist = shaderParm0.z;
	float threshold = shaderParm0.w;
	
	vec2 texSize = textureSize(currentRender, 0);

	vec2 uv = vert.texcoord;
    uv *=  1.0 - uv.yx;

	vec4 src = texture(currentRender, vert.texcoord);
	vec4 c = vec4(src.rgb, 1.0);

	vec4 fsrc = texture(currentRender, vert.texcoord);
	vec4 fc = vec4(src.rgb, 1.0);
	
	vec2 tc = vert.texcoord;
	
	float size = 0.5;
	for(int i = 0; i < samples; i ++)
	{
		vec2 tc = vert.texcoord;
		size += dist;
		tc.x *= 1.0-size;
		tc.x += size/2;
		
		tc.y *= 1.0-size;
		tc.y += size/2;
		
		fsrc = texture(currentRender, tc);
		fc += vec4(fsrc.rgb, 1.0);
	}
	
	
	size = 0.35;
	for(int i = 0; i < samples; i ++)
	{
		vec2 tc = vert.texcoord;
		size += dist;
		tc.x *= 1.0-size;
		tc.x += size/2;
		
		tc.y *= 1.0-size;
		tc.y += size/2;
		
		fsrc = texture(currentRender, tc);
		fc += vec4(fsrc.rgb, 1.0);
	}
	
	size = 0.8;
	for(int i = 0; i < samples; i ++)
	{
		vec2 tc = vert.texcoord;
		size += dist;
		tc.x *= 1.0-size;
		tc.x += size/2;
		
		tc.y *= 1.0-size;
		tc.y += size/2;
		
		fsrc = texture(currentRender, tc);
		fc += vec4(fsrc.rgb, 1.0);
	}
	
	size = 1.0;
	for(int i = 0; i < samples; i ++)
	{
		vec2 tc = vert.texcoord;
		size += dist;
		tc.x *= 1.0-size;
		tc.x += size/2;
		
		tc.y *= 1.0-size;
		tc.y += size/2;
		
		fsrc = texture(currentRender, tc);
		fc += vec4(fsrc.rgb, 1.0);
	}
	
	size = 0.98;
	for(int i = 0; i < samples; i ++)
	{
		size += dist*2;
		vec2 tc = vert.texcoord;
		tc.x *= size;
		tc.y *= size;
		fsrc = texture(currentRender, tc);
		fc += vec4(fsrc.rgb, 1.0);
	}
	
	fc = fc /(samples*3);
	fc = fc - threshold;
	fc = clamp(fc,0.0,1000000.0);
	
	
	fragColor = vec4(c + (fc * vec4(0.8, 0.8, 1.0, 1.0))*amount);
}

 

Edited by HMart

Share this post


Link to post
Share on other sites
1 hour ago, stgatilov said:

According to good issue-reporting policy, please, attach your darkmod.cfg and condump when this happens to the issue.

I'm not currently playing to generate an useful condump, but here's my darkmod.cfg in the meantime:

unbindall
bind "TAB" "_impulse19"
bind "ENTER" "_impulse51"
bind "ESCAPE" "togglemenu"
bind "SPACE" "_moveup"
bind "-" "_impulse50"
bind "0" "_impulse10"
bind "1" "_impulse1"
bind "2" "_impulse2"
bind "3" "_impulse3"
bind "4" "_impulse4"
bind "5" "_impulse5"
bind "6" "_impulse6"
bind "7" "_impulse7"
bind "8" "_impulse8"
bind "9" "_impulse9"
bind "=" "_impulse49"
bind "[" "_impulse47"
bind "\" "inventory_hotkey ''"
bind "]" "_impulse48"
bind "^" "_impulse0"
bind "a" "_moveleft"
bind "b" "_impulse27"
bind "c" "_impulse23"
bind "d" "_moveright"
bind "e" "_impulse46"
bind "f" "_impulse44"
bind "g" "inventory_use '#str_02396'"
bind "i" "inventory_cycle_group '#str_02391'"
bind "k" "inventory_cycle_group '#str_02392'"
bind "l" "inventory_use '#str_02395'"
bind "m" "inventory_cycle_maps"
bind "n" "toggle r_showportals"
bind "o" "_impulse30"
bind "p" "inventory_cycle_group '#str_02389'"
bind "q" "_impulse45"
bind "r" "_impulse52"
bind "s" "_back"
bind "u" "_impulse51"
bind "v" "inventory_hotkey '#str_02397'"
bind "w" "_forward"
bind "y" "clientMessageMode 1"
bind "z" "_zoom"
bind "BACKSPACE" "_impulse0"
bind "PAUSE" "pause"
bind "UPARROW" "_forward"
bind "DOWNARROW" "_back"
bind "LEFTARROW" "_left"
bind "RIGHTARROW" "_right"
bind "ALT" "_impulse23"
bind "CTRL" "_button5"
bind "SHIFT" "_speed"
bind "DEL" "_lookdown"
bind "PGDN" "_lookup"
bind "END" "_impulse18"
bind "F3" "_impulse17"
bind "F4" "savegame quick"
bind "F5" "loadgame quick"
bind "F6" "_impulse20"
bind "F7" "_impulse22"
bind "F12" "screenshot"
bind "KP_MINUS" "loadgame quick"
bind "KP_PLUS" "savegame quick"
bind "MOUSE1" "_attack"
bind "MOUSE2" "_zoom"
bind "MOUSE3" "_impulse41"
bind "MWHEELDOWN" "_impulse14"
bind "MWHEELUP" "_impulse15"
seta com_automation_port "3879"
seta net_serverDlTable ""
seta net_serverDlBaseURL ""
seta net_serverDownload "0"
seta mod_validSkins "skins/characters/player/marine_mp;skins/characters/player/marine_mp_green;skins/characters/player/marine_mp_blue;skins/characters/player/marine_mp_red;skins/characters/player/marine_mp_yellow"
seta g_mapCycle "mapcycle"
seta g_voteFlags "0"
seta g_gameReviewPause "10"
seta g_countDown "10"
seta g_password ""
seta g_rotoscope "0"
seta g_testModelHeadJoint "Spine2"
seta g_testModelHead "atdm:ai_head_citywatch"
seta g_skipViewEffects "0"
seta g_fov "90"
seta g_showBrass "1"
seta g_showProjectilePct "0"
seta g_showHud "1"
seta g_showPlayerShadow "1"
seta pm_air_regainingSpeed "4"
seta pm_air "1800"
seta pm_modelView "0"
seta pm_thirdPersonDeath "0"
seta pm_thirdPerson "0"
seta pm_thirdPersonClip "1"
seta pm_thirdPersonAngle "0"
seta pm_thirdPersonHeight "0"
seta pm_thirdPersonRange "80"
seta pm_bobroll "0.0015"
seta pm_bobpitch "0.001"
seta pm_bobup "0.03"
seta pm_runroll "0.003"
seta pm_runpitch "0.001"
seta pm_runbob "0.35"
seta pm_walkbob "0.3"
seta pm_crouchbob "0.2"
seta pm_bboxwidth "32"
seta pm_crouchrate "0.87"
seta pm_deadviewheight "10"
seta pm_deadheight "20"
seta pm_normalviewheight "68"
seta pm_normalheight "74"
seta pm_crouchviewheight "34"
seta pm_crouchheight "38"
seta pm_maxviewpitch "89"
seta pm_minviewpitch "-89"
seta pm_noclipspeed "200"
seta pm_walkspeed "70"
seta pm_stepsize "16"
seta pm_jumpheight "48"
seta g_enablePortalSky "2"
seta g_showcamerainfo "0"
seta g_damageScale "1"
seta g_decals "1"
seta g_doubleVision "1"
seta g_bloodEffects "1"
seta g_projectileLights "1"
seta g_muzzleFlash "1"
seta gui_CenterY "0.5"
seta gui_CenterX "0.5"
seta gui_Height "1.0"
seta gui_Width "1.0"
seta r_fovRatio "0"
seta r_aspectRatio "1"
seta ui_showGun "1"
seta ui_autoSwitch "1"
seta ui_team "Red"
seta ui_skin "skins/characters/player/marine_mp"
seta ui_name "Player"
seta si_serverURL ""
seta si_spectators "1"
seta si_usePass "0"
seta si_warmup "0"
seta si_teamDamage "0"
seta si_timeLimit "10"
seta si_maxPlayers "4"
seta si_map "game/mp/d3dm1"
seta si_gameType "singleplayer"
seta si_name "DOOM Server"
seta tdm_lod_bias "3.0"
seta tdm_voice_from_off_volume "0"
seta tdm_voice_player_volume "0"
seta tdm_music_volume "-19.682539"
seta tdm_ambient_method "0"
seta tdm_door_auto_open_on_unlock "0"
seta tdm_bow_aimer "1"
seta tdm_lp_debug_hud "0"
seta tdm_lp_pawlow "0"
seta tdm_lp_randomize "1"
seta tdm_lp_auto_pick "0"
seta tdm_lp_autopick_attempts "3"
seta tdm_lp_pick_timeout "750"
seta tdm_lp_sample_delay "10"
seta tdm_lp_base_count "5"
seta tdm_empty_model "models/darkmod/misc/system/empty.lwo"
seta tdm_lg_model "models/darkmod/misc/system/lightgem.lwo"
seta tdm_lg_weak "0"
seta tdm_lg_interleave_min "40"
seta tdm_lg_interleave "1"
seta pm_rope_snd_rep_dist "32"
seta pm_min_stepsound_interval "200"
seta pm_stepvol_crouch_creep "-7"
seta pm_stepvol_crouch_run "4"
seta pm_stepvol_crouch_walk "-2"
seta pm_stepvol_creep "-5"
seta pm_stepvol_run "8"
seta pm_stepvol_walk "0"
seta tdm_underwater_blur "3"
seta tdm_rope_pull_force_factor "140"
seta gui_objectiveTextSize "1"
seta gui_barSize "1"
seta gui_lightgemSize "1"
seta gui_bigTextSize "1"
seta gui_smallTextSize "1"
seta gui_iconSize "1"
seta tdm_inv_use_visual_feedback "1"
seta tdm_door_control "0"
seta tdm_inv_use_on_frob "1"
seta tdm_inv_loot_sound "frob_loot"
seta tdm_inv_hud_pickupmessages "1"
seta tdm_hud_hide_lightgem "0"
seta tdm_hud_opacity "1"
seta tdm_grabber_reverse_control "0"
seta tdm_bounce_sound_min_vel "80"
seta tdm_bounce_sound_max_vel "400"
seta tdm_throw_max_vel "900"
seta tdm_throw_time "1200"
seta tdm_throw_max "3500"
seta tdm_throw_min "600"
seta tdm_phys_show_momentum "0"
seta tdm_ai_hearing_hardcore "1.5"
seta tdm_ai_hearing_challenging "1.0"
seta tdm_ai_hearing_forgiving "0.6"
seta tdm_ai_hearing_nearly_deaf "0.2"
seta tdm_ai_hearing "0"
seta tdm_ai_vision_hardcore "1.5"
seta tdm_ai_vision_challenging "1.2"
seta tdm_ai_vision_forgiving "0.6"
seta tdm_ai_vision_nearly_blind "0.2"
seta tdm_ai_vision "0"
seta tdm_melee_difficulty "normal"
seta tdm_melee_max_particles "10"
seta tdm_melee_forbid_auto_parry "0"
seta tdm_melee_auto_parry "1"
seta tdm_melee_invert_parry "0"
seta tdm_melee_invert_attack "0"
seta tdm_melee_mouse_thresh_ "0"
seta tdm_dragged_item_highlight "1"
seta tdm_drag_encumber_max "0.4"
seta tdm_drag_encumber_maxmass "55"
seta tdm_drag_encumber_minmass "10"
seta tdm_drag_jump_masslimit "20"
seta tdm_drag_af_free "0"
seta tdm_drag_af_ground_timer "800"
seta tdm_drag_damping_af "0.4"
seta tdm_drag_damping "0.0"
seta tdm_drag_stuck_dist "38.0"
seta tdm_drag_force_max "100000"
seta tdm_drag_limit_force "1"
seta tdm_collision_damage_scale_horiz "0.5"
seta tdm_collision_damage_scale_vert "1"
seta tdm_frobhelper_ignore_size "40.0"
seta tdm_frobhelper_fadeout_duration "500"
seta tdm_frobhelper_fadein_duration "1500"
seta tdm_frobhelper_fadein_delay "500"
seta tdm_frobhelper_alpha "1.0"
seta tdm_frobhelper_active "1"
seta tdm_frob_fadetime "100"
seta tdm_frob_width "10.0"
seta tdm_frob_distance_default "63"
seta pm_lean_toggle "0"
seta pm_lean_door_bounds_exp "8.0"
seta pm_lean_door_max "40"
seta pm_lean_door_increments "10"
seta pm_lean_to_valid_increments "25"
seta pm_lean_forward_stretch "15"
seta pm_lean_forward_height "0.4"
seta pm_lean_forward_time "400.0"
seta pm_lean_forward_angle "2"
seta pm_lean_stretch "2"
seta pm_lean_height "0.4"
seta pm_lean_time "400.0"
seta pm_lean_angle "15.0"
seta tdm_reattach_delay "100"
seta tdm_crouch_toggle_hold_time "400"
seta tdm_toggle_crouch "1"
seta tdm_footfall_sounds_movetype_specific "1"
seta pm_mantle_pullFast_msecs "450"
seta pm_mantle_maxLowObstacleHeight "36.0"
seta pm_mantle_minflatness "0.707"
seta pm_mantle_height "0.2"
seta pm_mantle_reach "0.5"
seta pm_weightmod "1"
seta pm_push_max_mass "200"
seta pm_push_heavy_threshold "0.15"
seta pm_push_accel_time "1000"
seta pm_push_start_delay "1000"
seta pm_push_maximpulse "300"
seta pm_pushmod "0.15"
seta pm_max_swimspeed_mod "1.4"
seta pm_crouchmod "0.54"
seta pm_creepmod "0.44"
seta pm_runmod "2.12"
seta tdm_savegame_compress "1"
seta tdm_force_savegame_load "0"
seta tdm_mainmenu_confirmquit "1"
seta tdm_debug_aastype "aas32"
seta tdm_allow_http_access "1"
seta tdm_proxy_pass ""
seta tdm_proxy_user ""
seta tdm_proxy ""
seta tdm_fm_restart_delay "0"
seta tdm_default_relations_def "atdm:team_relations_default"
seta tdm_show_trainer_messages "1"
seta tdm_menu_music "1"
seta tdm_wideScreenMode "7"
seta tdm_ai_show_aasfuncobstacle_state "0"
seta tdm_show_health "0"
seta tdm_ai_debug_greetings "0"
seta tdm_ai_debug_transition_barks "0"
seta tdm_ai_opt_nolipsync "0"
seta tdm_ai_opt_update_enemypos_interleave "48"
seta tdm_ai_opt_interleavethinkframes "0"
seta tdm_ai_opt_interleavethinkskipPVS "0"
seta tdm_ai_opt_interleavethinkmaxdist "0"
seta tdm_ai_opt_interleavethinkmindist "0"
seta tdm_ai_search_type "4"
seta tdm_ai_visdist_show "0.0"
seta tdm_ai_search_show "0.0"
seta tdm_showko "0"
seta tdm_showsprop_radius "0"
seta tdm_showsprop "0"
seta tdm_spr_debug "0"
seta tdm_sndprop_disable "0"
seta tdm_ai_acuity_susp "1.2"
seta tdm_ai_acuity_L5 "1.5"
seta tdm_ai_acuity_L4 "1.3"
seta tdm_ai_acuity_L3 "1.1"
seta tdm_ai_show_conversationstate "0"
seta tdm_ai_show_enemy_visibility "0"
seta tdm_ai_sight_scale "1000.0"
seta tdm_ai_sight_thresh "1.0"
seta tdm_ai_showelevator "0"
seta tdm_ai_showdoor "0"
seta tdm_ai_debug_blocked "0"
seta tdm_ai_showAASarea "0"
seta tdm_ai_showgoalpos "0"
seta tdm_ai_showdest "0"
seta tdm_ai_showalert "0"
seta tdm_ai_showtasks "0"
seta tdm_ai_showanimstate "0"
seta tdm_ai_showko "0"
seta tdm_ai_showfov "0"
seta tdm_ai_debug "0"
seta tdm_ai_bumpobject_impulse "250"
seta tdm_ai_tact "20.0"
seta tdm_ai_sight_combat_cutoff "20.0"
seta tdm_ai_sightmin "15.0"
seta tdm_ai_sightmax "40.0"
seta tdm_ai_sight_mag "1.0"
seta tdm_ai_sight_prob "0.7"
seta tdm_ai_showname "0"
seta tdm_ai_showbark "0"
seta tdm_ai_sndvol "0.0"
seta tdm_player_wait_until_ready "1"
seta in_grabmouse "0"
seta in_grabkeyboard "0"
seta in_nowarp "0"
seta in_nograb "0"
seta in_dgamouse "0"
seta in_mouse "1"
seta v_nowmfullscreen "0"
seta sys_videoRam "512"
seta sys_lang "english"
seta s_decompressionLimit "6"
seta s_useEAXReverb "1"
seta s_numberOfSpeakers "2"
seta s_doorDistanceAdd "450"
seta s_globalFraction "0.8"
seta s_subFraction "0.75"
seta s_playDefaultSound "1"
seta s_volume_dB "0"
seta s_meterTopTime "2000"
seta s_reverse "0"
seta s_spatializationDecay "2"
seta s_maxSoundsPerShader "0"
seta s_device "default"
seta s_diffractionMax "10"
seta gui_mediumFontLimit "0.30"
seta gui_smallFontLimit "0.15"
seta r_maxShadowMapLight "1000"
seta r_shadowMapSinglePass "0"
seta r_useFenceSync "1"
seta r_frameIndexMemory "16384"
seta r_frameVertexMemory "16384"
seta r_cinematic_legacyRoq "0"
seta r_fboSeparateStencil "0"
seta r_fboResolution "1.69"
seta r_shadowMapSize "1024"
seta r_fboSharedDepth "0"
seta r_fboDepthBits "24"
seta r_fboColorBits "32"
seta r_nVidiaOverride "1"
seta r_useFBO "1"
seta r_useGLSL "1"
seta r_useBfgPortalCulling "0"
seta r_postprocess_bloomKernelSize "2"
seta r_postprocess_bloomIntensity "2"
seta r_postprocess "1"
seta r_screenshot_format "jpg"
seta r_debugArrowStep "120"
seta r_debugLineWidth "1"
seta r_debugLineDepthTest "0"
seta com_smp "1"
seta r_forceLoadImages "0"
seta r_testARBProgram "1"
seta r_shadows "2"
seta r_shadowPolygonFactor "0"
seta r_shadowPolygonOffset "-1"
seta r_offsetunits "-0.1"
seta r_offsetfactor "-2"
seta r_clear "2"
seta r_useSoftParticles "1"
seta r_skipDepthCapture "0"
seta r_skipBump "0"
seta r_skipSpecular "0"
seta r_skipNewAmbient "0"
seta r_ambientGamma "1"
seta r_ambientMinLevel "0"
seta r_brightness "1.25"
seta r_gamma "1.25"
seta r_swapInterval "1"
seta r_softShadowsRadius "1.047616"
seta r_softShadowsQuality "0"
seta r_customHeight "1080"
seta r_customWidth "1920"
seta r_fullscreen "1"
seta r_multiSamples "4"
seta image_mipmapMode "2"
seta image_blockChecksum "0"
seta image_downSizeLimit "256"
seta image_ignoreHighQuality "0"
seta image_downSizeBumpLimit "128"
seta image_downSizeSpecularLimit "64"
seta image_downSizeBump "0"
seta image_downSizeSpecular "0"
seta image_usePrecompressedTextures "1"
seta image_useNormalCompression "1"
seta image_useAllFormats "1"
seta image_useCompression "1"
seta image_preload "1"
seta image_roundDown "1"
seta image_forceDownSize "0"
seta image_downSize "0"
seta image_lodbias "0"
seta image_anisotropy "16"
seta image_filter "GL_LINEAR_MIPMAP_LINEAR"
seta r_cinematic_checkImmediately "0"
seta r_cinematic_log_flush "0"
seta r_cinematic_log_ffmpeg "0"
seta r_cinematic_log "0"
seta com_maxFPS "166"
seta com_savegame_preview_format "jpg"
seta com_numQuickSaves "2"
seta com_guid ""
seta com_fixedTic "0"
seta gui_configServerRate "0"
seta m_strafeSmooth "4"
seta m_smooth "2"
seta m_strafeScale "6.25"
seta m_yaw "0.022"
seta m_pitch "0.022"
seta sensitivityMenuOverride "0"
seta sensitivityMenu "1.0"
seta sensitivity "5"
seta in_toggleZoom "0"
seta in_toggleCrouch "0"
seta in_toggleRun "0"
seta in_alwaysRun "1"
seta in_freeLook "1"
seta in_anglespeedkey "1.5"
seta in_pitchspeed "140"
seta in_yawspeed "140"
seta com_preloadDemos "0"
seta com_compressDemos "1"
seta com_product_lang_ext "1"
seta logFile "0"
seta com_showFPSavg "4"
seta com_showFPS "0"
seta com_purgeAll "0"
seta r_skipDynamicShadows "0"

 

Share this post


Link to post
Share on other sites

I managed to reproduce the problem: it is caused by r_fboResolution.

As a workaround, execute "r_fboResolution 1" in console, and the problem will go away.

  • Like 2

Share this post


Link to post
Share on other sites
9 hours ago, stgatilov said:

I managed to reproduce the problem: it is caused by r_fboResolution.

As a workaround, execute "r_fboResolution 1" in console, and the problem will go away.

Aha... thank you! I shall try that next time I play. Does it have any undesired side effects, like decreasing the quality of any effects or breaking other shaders?

Share this post


Link to post
Share on other sites
1 hour ago, MirceaKitsune said:

Aha... thank you! I shall try that next time I play. Does it have any undesired side effects, like decreasing the quality of any effects or breaking other shaders?

r_fboResolution is called "Render Scale" in graphics menu. Players can set its value lower than 1 on low-end machines in order to make graphics faster by sacrificing precision/resolution (image will be blurry). You have value 1.7, which is above 1, so in your case it works like supersampling --- which is a bruteforce approach for antialiasing. Most likely you got this value during 2.06: at that time things were pretty weird and some hard-to-follow settings were enabled automatically depending on other options. Antialiasing was fixed in 2.07, but you did not reset your config, hence the non-default value persisted up to this day.

When you reset r_fboResolution from 1.69 to its default value 1, your GPU will have almost three times less pixels to process. So this change will definitely improve your performance (in theory, up to 3 times). But you will notice aliasing on hard almost vertical edges. In order to fix it, set Antialiasing in game menu to 2x or 4x. You can also experiment with other settings like soft shadows: it is very likely that settings which you could not run before will run normally now.

  • Like 1

Share this post


Link to post
Share on other sites

Speaking short, you should definitely reset this cvar to default and enable antialiasing. You will get much better performance then ;)

Share this post


Link to post
Share on other sites
2 hours ago, stgatilov said:

r_fboResolution is called "Render Scale" in graphics menu. Players can set its value lower than 1 on low-end machines in order to make graphics faster by sacrificing precision/resolution (image will be blurry). You have value 1.7, which is above 1, so in your case it works like supersampling --- which is a bruteforce approach for antialiasing. Most likely you got this value during 2.06: at that time things were pretty weird and some hard-to-follow settings were enabled automatically depending on other options. Antialiasing was fixed in 2.07, but you did not reset your config, hence the non-default value persisted up to this day.

When you reset r_fboResolution from 1.69 to its default value 1, your GPU will have almost three times less pixels to process. So this change will definitely improve your performance (in theory, up to 3 times). But you will notice aliasing on hard almost vertical edges. In order to fix it, set Antialiasing in game menu to 2x or 4x. You can also experiment with other settings like soft shadows: it is very likely that settings which you could not run before will run normally now.

Oh wow... thanks again. Yeah I didn't change it manually, but my config is old like from the days of TDM 2.03 so it likely got set back then. Who knows how much FPS I was losing without even knowing, can't wait to see the difference later today.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...