From 3991a0f765d3d493bcc08ac2aadc707934f4d640 Mon Sep 17 00:00:00 2001 From: ruslantproductengine Date: Fri, 29 Jun 2018 17:22:51 +0300 Subject: MAINT-8335 Derendering Avatar type also derenders some rezzed mesh objects Fixed --- indra/newview/pipeline.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra/newview/pipeline.cpp') diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index e541c1054e..5699d47ad8 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -2514,8 +2514,8 @@ void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_cl LLSpatialPartition* part = region->getSpatialPartition(i); if (part) { - if (hasRenderType(part->mDrawableType)) - { + if (LLViewerRegion::PARTITION_BRIDGE == i || hasRenderType(part->mDrawableType)) + { //pass PARTITION BRIDGE because LLDrawable can be moved to this partition part->cull(camera); } } -- cgit v1.2.3 From 609662dca5a9bdfeeaecfafc654e324e869335d0 Mon Sep 17 00:00:00 2001 From: ruslantproductengine Date: Mon, 17 Sep 2018 16:40:25 +0300 Subject: SL-1503 MAINT Objects do not rendering under water Fixed. --- indra/newview/pipeline.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'indra/newview/pipeline.cpp') diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 5699d47ad8..dbb79e8e63 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -2525,7 +2525,7 @@ void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_cl LLVOCachePartition* vo_part = region->getVOCachePartition(); if(vo_part) { - bool do_occlusion_cull = can_use_occlusion && use_occlusion && !gUseWireframe/* && !gViewerWindow->getProgressView()->getVisible()*/; + bool do_occlusion_cull = can_use_occlusion && use_occlusion && !gUseWireframe && 0 > water_clip /* && !gViewerWindow->getProgressView()->getVisible()*/; vo_part->cull(camera, do_occlusion_cull); } } @@ -9853,16 +9853,16 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) gPipeline.grabReferences(result); gPipeline.mDeferredScreen.bindTarget(); - gGL.setColorMask(true, true); + gGL.setColorMask(true, true); glClearColor(0,0,0,0); gPipeline.mDeferredScreen.clear(); - renderGeomDeferred(camera); + renderGeomDeferred(camera); } else { - renderGeom(camera, TRUE); - } + renderGeom(camera, TRUE); + } gPipeline.popRenderTypeMask(); } @@ -9880,6 +9880,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) S32 detail = RenderReflectionDetail; if (detail > 0) { //mask out selected geometry based on reflection detail + if (detail < 4) { clearRenderTypeMask(LLPipeline::RENDER_TYPE_PARTICLES, END_RENDER_TYPES); @@ -9893,6 +9894,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) } } + LLGLUserClipPlane clip_plane(plane, mat, projection); LLGLDisable cull(GL_CULL_FACE); updateCull(camera, ref_result, -water_clip, &plane); @@ -9907,15 +9909,15 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) LLGLUserClipPlane clip_plane(plane, mat, projection); if (LLPipeline::sRenderDeferred && materials_in_water) - { + { renderGeomDeferred(camera); } else { - renderGeom(camera); + renderGeom(camera); + } } - } - } + } if (LLPipeline::sRenderDeferred && materials_in_water) { @@ -9984,14 +9986,14 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) if (LLPipeline::sRenderDeferred && materials_in_water) - { + { mWaterDis.flush(); gPipeline.mDeferredScreen.bindTarget(); gGL.setColorMask(true, true); glClearColor(0,0,0,0); gPipeline.mDeferredScreen.clear(); gPipeline.grabReferences(result); - renderGeomDeferred(camera); + renderGeomDeferred(camera); } else { -- cgit v1.2.3 From 060a0bc350f279c6023b061255653b575156b009 Mon Sep 17 00:00:00 2001 From: Graham Linden Date: Fri, 2 Nov 2018 22:36:56 +0100 Subject: SL-10005 Make set of copied bits (depth and/or stencil) match those present in the source and dest. May avoid driver crash on Intel HD graphics. --- indra/newview/pipeline.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'indra/newview/pipeline.cpp') diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index e541c1054e..e2c379102d 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -2654,9 +2654,12 @@ void LLPipeline::downsampleDepthBuffer(LLRenderTarget& source, LLRenderTarget& d if (scratch_space) { + GLint bits = 0; + bits |= (source.hasStencil() && dest.hasStencil()) ? GL_STENCIL_BUFFER_BIT : 0; + bits |= GL_DEPTH_BUFFER_BIT; scratch_space->copyContents(source, 0, 0, source.getWidth(), source.getHeight(), - 0, 0, scratch_space->getWidth(), scratch_space->getHeight(), GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT, GL_NEAREST); + 0, 0, scratch_space->getWidth(), scratch_space->getHeight(), bits, GL_NEAREST); } dest.bindTarget(); -- cgit v1.2.3 From ee39ebd523455a32234cf3d362ca96ebdcd4d86b Mon Sep 17 00:00:00 2001 From: AndreyL ProductEngine Date: Wed, 20 Mar 2019 19:40:14 +0200 Subject: Backed out changeset: 29f763ea2f9b The fix caused SL-10357 --- indra/newview/pipeline.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra/newview/pipeline.cpp') diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 7be5c86679..e8c9909f8c 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -2514,8 +2514,8 @@ void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_cl LLSpatialPartition* part = region->getSpatialPartition(i); if (part) { - if (LLViewerRegion::PARTITION_BRIDGE == i || hasRenderType(part->mDrawableType)) - { //pass PARTITION BRIDGE because LLDrawable can be moved to this partition + if (hasRenderType(part->mDrawableType)) + { part->cull(camera); } } -- cgit v1.2.3