Skip to content

Commit

Permalink
Merge pull request #108 from Silverlan/develop
Browse files Browse the repository at this point in the history
  • Loading branch information
Silverlan authored Aug 22, 2024
2 parents e28942f + ddcc5b0 commit 281d76b
Show file tree
Hide file tree
Showing 34 changed files with 284 additions and 247 deletions.
14 changes: 13 additions & 1 deletion assets/shaders/modules/sh_material.gls
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,16 @@
#define FMAT_GLOW_SRGB (FMAT_DIFFUSE_SRGB<<1)
#define FMAT_DEBUG (FMAT_GLOW_SRGB<<1)

#define FMAT_WRINKLE_MAPS (FMAT_DEBUG<<1)
#define FMAT_RMA_MAP (FMAT_WRINKLE_MAPS<<1)

struct MaterialData
{
vec4 color;
vec4 emissionFactor;
uint flags;
float glowScale;
float parallaxHeightScale;
uint parallax; // (parallaxSteps << 16) | parallaxHeightScale;
float alphaDiscardThreshold;
float phongIntensity;
float metalnessFactor;
Expand All @@ -44,10 +47,19 @@ layout(std140,LAYOUT_ID(DESCRIPTOR_SET_MATERIAL,DESCRIPTOR_SET_MATERIAL_BINDING_
bool use_normal_map() {return ((u_material.material.flags &FMAT_NORMAL) != 0) ? true : false;}
bool use_parallax_map() {return ((u_material.material.flags &FMAT_PARALLAX) != 0) ? true : false;}
bool use_glow_map() {return ((u_material.material.flags &FMAT_GLOW_MODE) != 0) ? true : false;}
bool use_wrinkle_maps() {return ((u_material.material.flags &FMAT_WRINKLE_MAPS) != 0) ? true : false;}
bool use_rma_map() {return ((u_material.material.flags &FMAT_RMA_MAP) != 0) ? true : false;}
float get_glow_scale() {return u_material.material.glowScale;}
bool is_material_translucent() {return ((u_material.material.flags &FMAT_TRANSLUCENT) != 0) ? true : false;}
bool is_diffuse_srgb() {return ((u_material.material.flags &FMAT_DIFFUSE_SRGB) != 0) ? true : false;}
bool is_glow_srgb() {return ((u_material.material.flags &FMAT_GLOW_SRGB) != 0) ? true : false;}
bool is_material_debug_flag_set() {return ((u_material.material.flags &FMAT_DEBUG) != 0) ? true : false;}

float get_parallax_height_scale()
{
uint parallaxHeightScaleBits = u_material.material.parallax & 0xFFFF;
return unpackHalf2x16(parallaxHeightScaleBits).x;
}
float get_parallax_steps() {return (u_material.material.parallax >> 16) & 0xFFFF;}

#endif
63 changes: 47 additions & 16 deletions assets/shaders/modules/sh_parallaxmapping.gls
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,56 @@
layout(LAYOUT_ID(DESCRIPTOR_SET_MATERIAL,DESCRIPTOR_SET_MATERIAL_BINDING_PARALLAX_MAP)) uniform sampler2D u_parallaxMap;
#endif

vec2 get_parallax_coordinates(bool useParallaxMap,vec2 texCoords)
//Parallax Occlusion Mapping function from https://learnopengl.com/Advanced-Lighting/Parallax-Mapping
vec2 ParallaxMapping(vec2 texCoords, vec3 viewDir)
{
const float numLayers = get_parallax_steps();
const float height_scale = get_parallax_height_scale();
float layerDepth = 1.0 / numLayers;
float currentLayerDepth = 0.0;
vec2 P = viewDir.xy * height_scale;
vec2 deltaTexCoords = P / numLayers;
vec2 currentTexCoords = texCoords;
float currentDepthMapValue = 1.0 -texture(u_parallaxMap, currentTexCoords).r;

while (currentLayerDepth < currentDepthMapValue)
{
currentTexCoords -= deltaTexCoords;
currentDepthMapValue = 1.0 -texture(u_parallaxMap, currentTexCoords).r;
currentLayerDepth += layerDepth;
}

vec2 prevTexCoords = currentTexCoords + deltaTexCoords;
float afterDepth = currentDepthMapValue - currentLayerDepth;
float beforeDepth = (1.0 -texture(u_parallaxMap, prevTexCoords).r) - currentLayerDepth + layerDepth;
float weight = afterDepth / (afterDepth - beforeDepth);
vec2 finalTexCoords = prevTexCoords * weight + currentTexCoords * (1.0 - weight);

return finalTexCoords;
}

//Corrected Viewdir calculations here
vec2 get_parallax_coordinates(bool useParallaxMap, vec2 texCoords)
{
#if USE_PARALLAX_MAP == 1
if(useParallaxMap == false)
return texCoords;
//vec3 viewDir = fs_in.tangentData.cam_dir_to_vert_ts;

mat3 TBN = fs_in.TBN *inverse(transpose(mat3(get_view_matrix()))); // TODO: This basically undoes what the vertex shader is doing (performance waste), but the TBN needs to be in view-space for lighting. Is there a better way?
vec3 camPosTs = TBN *u_renderSettings.posCam.xyz;
vec3 vertPosTs = TBN *fs_in.vert_pos_ws.xyz;
vec3 viewDir = camPosTs -vertPosTs;

float height = texture(u_parallaxMap,texCoords).r;
vec2 p = viewDir.xy /viewDir.z *(height *u_material.material.parallaxHeightScale);
return texCoords -p;
#else
if (useParallaxMap == false)
return texCoords;

vec3 T = normalize(fs_in.TBN[0]);
vec3 B = normalize(fs_in.TBN[1]);
vec3 N = normalize(fs_in.TBN[2]);
mat3 tbnMatrix = transpose(mat3(T, B, N));
vec3 camPosWs = u_renderSettings.posCam.xyz;
vec3 vertPosWs = fs_in.vert_pos_ws;
vec3 viewDirWs = normalize(camPosWs - vertPosWs);
vec3 viewDirTs = normalize(tbnMatrix * viewDirWs);
vec2 finalTexCoords = ParallaxMapping(texCoords, viewDirTs);

return finalTexCoords;
#else
return texCoords;
#endif
}
}
vec2 get_parallax_coordinates(vec2 texCoords) {return get_parallax_coordinates(true,texCoords);}

vec2 apply_parallax(bool useParallaxMap,vec2 texCoords)
Expand All @@ -54,4 +85,4 @@
}
#endif

#endif
#endif
13 changes: 4 additions & 9 deletions assets/shaders/modules/vs_weighted.gls
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ layout(std140,LAYOUT_ID(DESCRIPTOR_SET_INSTANCE,DESCRIPTOR_SET_INSTANCE_BINDING_
mat4 matrices[MAX_BONES];
} u_bones;

layout(constant_id = SPECIALIZATION_CONSTANT_ENABLE_EXTENDED_VERTEX_WEIGHTS) const uint CSPEC_ENABLE_EXTENDED_VERTEX_WEIGHTS = 1;

mat4 calc_bone_matrix(bool weighted,bool weightedExt)
{
if(weighted == false)
Expand All @@ -29,15 +27,12 @@ mat4 calc_bone_matrix(bool weighted,bool weightedExt)
if(in_boneWeightIDs[i] != -1)
mat += in_weights[i] *u_bones.matrices[in_boneWeightIDs[i]];
}
if(CSPEC_ENABLE_EXTENDED_VERTEX_WEIGHTS == 1)
if(weightedExt)
{
if(weightedExt)
for(int i=4;i<8;i++)
{
for(int i=4;i<8;i++)
{
if(in_boneWeightExtIDs[i] != -1)
mat += in_weightsExt[i] *u_bones.matrices[in_boneWeightExtIDs[i]];
}
if(in_boneWeightExtIDs[i] != -1)
mat += in_weightsExt[i] *u_bones.matrices[in_boneWeightExtIDs[i]];
}
}
return mat;
Expand Down
21 changes: 10 additions & 11 deletions assets/shaders/modules/vs_world.gls
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ void export_world_fragment_data(mat4 mdlMatrix,vec3 vpos)
vs_out.wrinkleDelta = wrinkleDelta;
}
bool extendedWeights = false;
if(CSPEC_ENABLE_EXTENDED_VERTEX_WEIGHTS == 1)
if(is_weighted_ext())
extendedWeights = is_weighted_ext();
mBone = calc_bone_matrix(is_instanced_weighted(),extendedWeights);
vertPos = mBone *vertPos;
Expand All @@ -68,11 +68,8 @@ void export_world_fragment_data(mat4 mdlMatrix,vec3 vpos)
vec4 vposWs = mdlMatrix *vertPos;

mat4 P = u_camera.P;
if(CSPEC_ENABLE_DEPTH_BIAS == 1)
{
if(u_pushConstants.scene.depthBias.x > 0.0)
apply_projection_depth_bias_offset(P,u_renderSettings.nearZ,u_renderSettings.farZ,u_pushConstants.scene.depthBias[0],u_pushConstants.scene.depthBias[1]);
}
if(u_pushConstants.scene.depthBias.x > 0.0)
apply_projection_depth_bias_offset(P,u_renderSettings.nearZ,u_renderSettings.farZ,u_pushConstants.scene.depthBias[0],u_pushConstants.scene.depthBias[1]);
gl_Position = API_DEPTH_TRANSFORM(P) *V *vposWs;

vposWs.xyz /= vposWs.w;
Expand All @@ -92,12 +89,14 @@ void export_world_fragment_data(mat4 mdlMatrix,vec3 vpos)
vs_out.vert_normal = vertNorm;
vs_out.vert_uv = in_vert_uv.xy;

if(CSPEC_ENABLE_NORMAL_MAP == 1 || CSPEC_PARALLAX_ENABLED == 1)
if(use_normal_map() || use_parallax_map())
{
vec3 T = normalize((mBone *vec4(in_vert_tangent,0.0)).xyz);
vec3 B = normalize((mBone *vec4(in_vert_bitangent,0.0)).xyz);
vec3 N = vertNorm;
vs_out.TBN = mat3(T,B,N);
if(CSPEC_ENABLE_ANIMATION == 0)
mBone = mat4(1.0);
vec3 T = normalize((mBone *vec4(in_vert_tangent,0.0)).xyz);
vec3 B = normalize((mBone *vec4(in_vert_bitangent,0.0)).xyz);
vec3 N = vertNorm;
vs_out.TBN = mat3(T,B,N);

vs_out.vert_normal_cs = (V *mdlMatrix *vec4(vertNorm,0)).xyz;
}
Expand Down
4 changes: 0 additions & 4 deletions assets/shaders/world/pbr/fs_config.gls
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,10 @@

#include "sh_pbr.gls"

layout(constant_id = SPECIALIZATION_CONSTANT_EMISSION_ENABLED) const uint CSPEC_EMISSION_ENABLED = 1;
layout(constant_id = SPECIALIZATION_CONSTANT_WRINKLES_ENABLED) const uint CSPEC_WRINKLES_ENABLED = 1;
layout(constant_id = SPECIALIZATION_CONSTANT_ENABLE_TRANSLUCENCY) const uint CSPEC_ENABLE_TRANSLUCENCY = 1;
const uint CSPEC_ENABLE_LIGHT_SOURCES = 1;
const uint CSPEC_ENABLE_LIGHT_SOURCES_SPOT = 1;
const uint CSPEC_ENABLE_LIGHT_SOURCES_POINT = 1;
const uint CSPEC_ENABLE_LIGHT_SOURCES_DIRECTIONAL = 1;
layout(constant_id = SPECIALIZATION_CONSTANT_ENABLE_RMA_MAP) const uint CSPEC_ENABLE_RMA_MAP = 1;

layout(constant_id = SPECIALIZATION_CONSTANT_SHADOW_QUALITY) const uint CSPEC_SHADOW_QUALITY = 2;
layout(constant_id = SPECIALIZATION_CONSTANT_DEBUG_MODE_ENABLED) const uint CSPEC_DEBUG_MODE_ENABLED = 1;
Expand Down
2 changes: 1 addition & 1 deletion assets/shaders/world/pbr/fs_glow.gls
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ layout(LAYOUT_ID(DESCRIPTOR_SET_MATERIAL,9)) uniform sampler2D u_glowMapTest;
void main()
{
vec2 texCoords = fs_in.vert_uv;
if(CSPEC_PARALLAX_ENABLED == 1)
if(use_parallax_map())
texCoords = apply_parallax(use_parallax_map(),texCoords);
vec4 albedoColor = texture(u_albedoMap,texCoords);
fs_color = calc_pbr(albedoColor,texCoords,u_pushConstants.debugMode);
Expand Down
2 changes: 1 addition & 1 deletion assets/shaders/world/pbr/fs_pbr.gls
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
void main()
{
vec2 texCoords = fs_in.vert_uv;
if(CSPEC_PARALLAX_ENABLED == 1)
if(use_parallax_map())
texCoords = apply_parallax(use_parallax_map(),texCoords);
vec4 albedoColor = texture(u_albedoMap,texCoords);
fs_color = calc_pbr(albedoColor,texCoords,u_pushConstants.debugMode);
Expand Down
2 changes: 1 addition & 1 deletion assets/shaders/world/pbr/fs_util.gls
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ vec4 get_base_color(vec4 albedoColor)
{
vec4 colorMod = get_instance_color();
vec4 baseColor = albedoColor;
if(CSPEC_ENABLE_TRANSLUCENCY == 1) {
if(is_material_translucent()) {
uint alphaMode = u_material.material.alphaMode;
if(colorMod.a < 1.0)
alphaMode = ALPHA_MODE_BLEND;
Expand Down
4 changes: 2 additions & 2 deletions assets/shaders/world/pbr/material.gls
Original file line number Diff line number Diff line change
Expand Up @@ -94,14 +94,14 @@ MaterialInfo build_material_info(MaterialData materialData,vec4 albedoColor,vec4

vec4 colorMod = instanceColor;
baseColor = albedoColor;
if(CSPEC_ENABLE_TRANSLUCENCY == 1)
if(is_material_translucent())
baseColor.a = apply_alpha_mode(baseColor.a *colorMod.a *materialData.color.a,materialData.alphaMode,materialData.alphaCutoff);
else
baseColor.a = 1.0;
baseColor.rgb *= colorMod.rgb *materialData.color.rgb;

#if MATERIAL_ENABLE_WRINKLES == 1
if(CSPEC_WRINKLES_ENABLED == 1)
if(use_wrinkle_maps())
{
if(wrinkleData != 0.0)
{
Expand Down
2 changes: 1 addition & 1 deletion assets/shaders/world/pbr/normal.gls
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

vec3 get_normal_from_map(vec2 texCoords)
{
if(CSPEC_ENABLE_NORMAL_MAP == 1 && use_normal_map())
if(use_normal_map())
{
vec3 tangentNormal = texture(u_normalMap,texCoords).xyz *2.0 -1.0;

Expand Down
8 changes: 4 additions & 4 deletions assets/shaders/world/pbr/pbr.gls
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ vec4 calc_pbr(vec4 albedoColor,vec2 texCoords,uint debugMode)
//diffuseColor = baseColor.rgb * oneMinusSpecularStrength;

vec4 rma;
if(CSPEC_ENABLE_RMA_MAP == 1)
if(use_rma_map())
rma = texture(u_rmaMap,texCoords);
else
rma = vec4(1 /* ao */,1 /* roughness */,1 /*metalness */,1);
Expand All @@ -91,7 +91,7 @@ vec4 calc_pbr(vec4 albedoColor,vec2 texCoords,uint debugMode)
metallic = rma[RMA_CHANNEL_METALNESS] * u_material.material.metalnessFactor;

baseColor = get_base_color(albedoColor);
if(CSPEC_WRINKLES_ENABLED == 1)
if(use_wrinkle_maps())
{
if(fs_in.wrinkleDelta != 0.0)
{
Expand Down Expand Up @@ -188,9 +188,9 @@ vec4 calc_pbr(vec4 albedoColor,vec2 texCoords,uint debugMode)
color = mix(color, color * ao, materialInfo.aoFactor *0.7 +0.3);

// regular shading
vec4 result = vec4(color.rgb, baseColor.a); // TODO
vec4 result = vec4(color.rgb, baseColor.a);

if(CSPEC_EMISSION_ENABLED == 1)
if(use_glow_map())
{
vec4 emissionColor = get_emission_color(result,baseColor,texCoords);
result = get_emission_color(result,baseColor,texCoords);
Expand Down
15 changes: 2 additions & 13 deletions assets/shaders/world/pbr/sh_pbr.gls
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,16 @@
#define SPECIALIZATION_CONSTANT_ENABLE_ANIMATION (SPECIALIZATION_CONSTANT_ENABLE_LIGHT_MAPS +1)
#define SPECIALIZATION_CONSTANT_ENABLE_MORPH_TARGET_ANIMATION (SPECIALIZATION_CONSTANT_ENABLE_ANIMATION +1)

#define SPECIALIZATION_CONSTANT_EMISSION_ENABLED (SPECIALIZATION_CONSTANT_ENABLE_MORPH_TARGET_ANIMATION +1)
#define SPECIALIZATION_CONSTANT_WRINKLES_ENABLED (SPECIALIZATION_CONSTANT_EMISSION_ENABLED +1)
#define SPECIALIZATION_CONSTANT_ENABLE_TRANSLUCENCY (SPECIALIZATION_CONSTANT_WRINKLES_ENABLED +1)
#define SPECIALIZATION_CONSTANT_ENABLE_RMA_MAP (SPECIALIZATION_CONSTANT_ENABLE_TRANSLUCENCY +1)
#define SPECIALIZATION_CONSTANT_ENABLE_NORMAL_MAP (SPECIALIZATION_CONSTANT_ENABLE_RMA_MAP +1)
#define SPECIALIZATION_CONSTANT_PARALLAX_ENABLED (SPECIALIZATION_CONSTANT_ENABLE_NORMAL_MAP +1)
#define SPECIALIZATION_CONSTANT_ENABLE_CLIPPING (SPECIALIZATION_CONSTANT_PARALLAX_ENABLED +1)
#define SPECIALIZATION_CONSTANT_ENABLE_3D_ORIGIN (SPECIALIZATION_CONSTANT_ENABLE_CLIPPING +1)
#define SPECIALIZATION_CONSTANT_ENABLE_EXTENDED_VERTEX_WEIGHTS (SPECIALIZATION_CONSTANT_ENABLE_3D_ORIGIN +1)
#define SPECIALIZATION_CONSTANT_ENABLE_DEPTH_BIAS (SPECIALIZATION_CONSTANT_ENABLE_EXTENDED_VERTEX_WEIGHTS +1)
#define SPECIALIZATION_CONSTANT_ENABLE_TRANSLUCENCY (SPECIALIZATION_CONSTANT_ENABLE_MORPH_TARGET_ANIMATION +1)

#define SPECIALIZATION_CONSTANT_SHADOW_QUALITY (SPECIALIZATION_CONSTANT_ENABLE_DEPTH_BIAS +1)
#define SPECIALIZATION_CONSTANT_SHADOW_QUALITY (SPECIALIZATION_CONSTANT_ENABLE_TRANSLUCENCY +1)
#define SPECIALIZATION_CONSTANT_DEBUG_MODE_ENABLED (SPECIALIZATION_CONSTANT_SHADOW_QUALITY +1)
#define SPECIALIZATION_CONSTANT_BLOOM_OUTPUT_ENABLED (SPECIALIZATION_CONSTANT_DEBUG_MODE_ENABLED +1)
#define SPECIALIZATION_CONSTANT_ENABLE_SSAO (SPECIALIZATION_CONSTANT_BLOOM_OUTPUT_ENABLED +1)
#define SPECIALIZATION_CONSTANT_ENABLE_IBL (SPECIALIZATION_CONSTANT_ENABLE_SSAO +1)
#define SPECIALIZATION_CONSTANT_ENABLE_DYNAMIC_LIGHTING (SPECIALIZATION_CONSTANT_ENABLE_IBL +1)
#define SPECIALIZATION_CONSTANT_ENABLE_DYNAMIC_SHADOWS (SPECIALIZATION_CONSTANT_ENABLE_DYNAMIC_LIGHTING +1)

layout(constant_id = SPECIALIZATION_CONSTANT_ENABLE_NORMAL_MAP) const uint CSPEC_ENABLE_NORMAL_MAP = 1;
layout(constant_id = SPECIALIZATION_CONSTANT_PARALLAX_ENABLED) const uint CSPEC_PARALLAX_ENABLED = 1;
layout(constant_id = SPECIALIZATION_CONSTANT_ENABLE_LIGHT_MAPS) const uint CSPEC_ENABLE_LIGHT_MAPS = 1;

#endif
3 changes: 0 additions & 3 deletions assets/shaders/world/pbr/vs_config.gls
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,3 @@

layout(constant_id = SPECIALIZATION_CONSTANT_ENABLE_ANIMATION) const uint CSPEC_ENABLE_ANIMATION = 1;
layout(constant_id = SPECIALIZATION_CONSTANT_ENABLE_MORPH_TARGET_ANIMATION) const uint CSPEC_ENABLE_MORPH_TARGET_ANIMATION = 1;
layout(constant_id = SPECIALIZATION_CONSTANT_ENABLE_CLIPPING) const uint CSPEC_ENABLE_CLIPPING = 1;
layout(constant_id = SPECIALIZATION_CONSTANT_ENABLE_3D_ORIGIN) const uint CSPEC_ENABLE_3D_ORIGIN = 1;
layout(constant_id = SPECIALIZATION_CONSTANT_ENABLE_DEPTH_BIAS) const uint CSPEC_ENABLE_DEPTH_BIAS = 1;
4 changes: 2 additions & 2 deletions build_scripts/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -1070,8 +1070,8 @@ def download_addon(name,addonName,url,commitId=None):
curDir = os.getcwd()
if not skip_repository_updates:
if with_pfm:
download_addon("PFM","filmmaker","https://github.com/Silverlan/pfm.git","d87c86739640caabd831a9d281d722f94a0ee693")
download_addon("model editor","tool_model_editor","https://github.com/Silverlan/pragma_model_editor.git","56d46dacb398fa7540e794359eaf1081c9df1edd")
download_addon("PFM","filmmaker","https://github.com/Silverlan/pfm.git","abc5965d4f48d5737460bb4749b78b8079ab4ab9")
download_addon("model editor","tool_model_editor","https://github.com/Silverlan/pragma_model_editor.git","583587dafd49f30679b2326008e2a758e33dbda2")

if with_vr:
download_addon("VR","virtual_reality","https://github.com/Silverlan/PragmaVR.git","49036448123b0a303fa1e78897d0a070bb3102f7")
Expand Down
6 changes: 3 additions & 3 deletions build_scripts/scripts/external_libs.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
get_submodule("materialsystem","https://github.com/Silverlan/materialsystem.git","42f5b7ec887562f28820222f542db7ef0bd902dd")
get_submodule("mathutil","https://github.com/Silverlan/mathutil.git","90a6cbb229cf3b2e7af1eb9bc58b3ff22db5a611")
get_submodule("networkmanager","https://github.com/Silverlan/networkmanager.git","981bc5809c1a768267ddace778205e1be0262730")
get_submodule("panima","https://github.com/Silverlan/panima.git","f99f1d4a671d354812c1af634662c00c70724efb")
get_submodule("panima","https://github.com/Silverlan/panima.git","08492a7bd8b214ff8472ae3288a32020aff1f60e")
get_submodule("prosper","https://github.com/Silverlan/prosper.git","37b3c30e0690ec98c72f8f13a431d8fb804e61ef")
get_submodule("sharedutils","https://github.com/Silverlan/sharedutils.git","37a24f76f0167fc044bab4aa43bc3665f4b090a4")
get_submodule("sharedutils","https://github.com/Silverlan/sharedutils.git","b9703eef0b4510d1b631cb501517144da8922572")
get_submodule("util_bsp","https://github.com/Silverlan/util_bsp.git","227b126bdd26a78164946b4b49332b841122e551")
get_submodule("util_formatted_text","https://github.com/Silverlan/util_formatted_text.git","3fbb26580f732d0297cd6738f28636f6a1fd1f0c")
get_submodule("util_image","https://github.com/Silverlan/util_image.git","901be63a3b9bb26dfe6670b1c5ba2c5025f2773a")
Expand All @@ -28,7 +28,7 @@
get_submodule("util_source2","https://github.com/Silverlan/util_source2.git","2d45b2c76921475b61647ea63aeb180b37a17d44")
get_submodule("util_source_script","https://github.com/Silverlan/util_source_script.git","f56f97c347e7829f5053fb5b22cbc314148512b9")
get_submodule("util_timeline_scene","https://github.com/Silverlan/util_timeline_scene.git","2278d986633254d5c3d7fe90b746c4bc9d736bfe")
get_submodule("util_udm","https://github.com/Silverlan/util_udm.git","d063f9c90a964c83394f882814a85341175f152f")
get_submodule("util_udm","https://github.com/Silverlan/util_udm.git","8213f4c27aba72e683978a1a00101e8dcd59f50b")
get_submodule("util_versioned_archive","https://github.com/Silverlan/util_versioned_archive.git","77531a4e93ded49dc8e5fe402db4198ab9aaa369")
get_submodule("util_vmf","https://github.com/Silverlan/util_vmf.git","3080ba05280ae5b0a76ef283870864c16d1c7826")
get_submodule("util_zip","https://github.com/Silverlan/util_zip.git","1f13d86fef96462248de222d7978a078a38efe00")
Expand Down
2 changes: 1 addition & 1 deletion build_scripts/scripts/shared.py
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ def determine_vs_installation_path(deps_dir):
if not os.path.exists(vswhere_path):
urllib.request.urlretrieve(vswhere_url, vswhere_path)

return subprocess.check_output([vswhere_path, "-property", "installationPath"], text=True).strip()
return subprocess.check_output([vswhere_path, "-latest", "-products", "*", "-requires", "Microsoft.Component.MSBuild", "-property", "installationPath"], text=True).strip()

def determine_vsdevcmd_path(deps_dir):
installation_path = determine_vs_installation_path(deps_dir)
Expand Down
Loading

0 comments on commit 281d76b

Please sign in to comment.