What you were trying to do: Gently test the new UDL vision restriction. What happened: Any area covered by vision becomes pixelated. GM Layer items within the vision become invisible. Night Vision Off Night Vision On - Unrestricted Night Vision On - Restricted Note the partial obfuscation of the area label which is on the GM Layer. Not sure if related, but light emitting tokens affects GM Layer item Opacity Steps to Reproduce: 1. Load any game 2. Have multiple tokens, perhaps items on the GM Layer. 3. Enable UDL. 4. Observe pixelation. Browser & OS info: Chrome Version 83.0.4103.116 (Official Build) (64-bit) Windows 10 Home v1909 Build 18363.900 Is WebGL supported by your browser? Please visit <a href="https://webglreport.com/" rel="nofollow">https://webglreport.com/</a> and copy/paste the WebGL1 report from there. Platform: Win32 Browser User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 Context Name: webgl2 GL Version: WebGL 2.0 (OpenGL ES 3.0 Chromium) Shading Language Version: WebGL GLSL ES 3.00 (OpenGL ES GLSL ES 3.0 Chromium) Vendor: WebKit Renderer: WebKit WebGL Unmasked Vendor: Google Inc. Unmasked Renderer: ANGLE (NVIDIA GeForce GTX 1050 Ti Direct3D11 vs_5_0 ps_5_0) Antialiasing: Available ANGLE: Yes, D3D9 Major Performance Caveat: No Vertex Shader Max Vertex Attributes: 16 Max Vertex Uniform Vectors: 4095 Max Vertex Texture Image Units: 16 Max Varying Vectors: 30 Best float precision: [-2127, 2127] (23) Max Vertex Uniform Components: 16380 Max Vertex Uniform Blocks: 12 Max Vertex Output Components: 120 Max Varying Components: 120 Transform Feedback Max Interleaved Components: 120 Max Separate Attribs: 4 Max Separate Components: 4 Rasterizer Aliased Line Width Range: [1, 1] Aliased Point Size Range: [1, 1024] Fragment Shader Max Fragment Uniform Vectors: 1024 Max Texture Image Units: 16 float/int precision: highp/highp Best float precision: [-2127, 2127] (23) Max Fragment Uniform Components: 4096 Max Fragment Uniform Blocks: 12 Max Fragment Input Components: 120 Min Program Texel Offset: -8 Max Program Texel Offset: 7 Framebuffer Max Draw Buffers: 8 Max Color Attachments: 8 Max Samples: 8 RGBA Bits: [8, 8, 8, 8] Depth / Stencil Bits: [24, 8] Max Render Buffer Size: 16384 Max Viewport Dimensions: [32767, 32767] Textures Max Texture Size: 16384 Max Cube Map Texture Size: 16384 Max Combined Texture Image Units: 32 Max Anisotropy: 16 Max 3D Texture Size: 2048 Max Array Texture Layers: 2048 Max Texture LOD Bias: 2 Uniform Buffers Max Uniform Buffer Bindings: 24 Max Uniform Block Size: 65536 Uniform Buffer Offset Alignment: 256 Max Combined Uniform Blocks: 24 Max Combined Vertex Uniform Components: 212988 Max Combined Fragment Uniform Components: 200704 Supported Extensions: EXT_color_buffer_float EXT_disjoint_timer_query_webgl2 EXT_float_blend EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic KHR_parallel_shader_compile OES_texture_float_linear WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context OVR_multiview2 To see draft extensions in Chrome, browse to about:flags, enable the "Enable WebGL Draft Extensions" option, and relaunch. WebGL 2 Functions Implementation Status: 88 of 88 new functions implemented. copyBufferSubData getBufferSubData blitFramebuffer framebufferTextureLayer getInternalformatParameter invalidateFramebuffer invalidateSubFramebuffer readBuffer renderbufferStorageMultisample texStorage2D texStorage3D texImage3D texSubImage3D copyTexSubImage3D compressedTexImage3D compressedTexSubImage3D getFragDataLocation uniform1ui uniform2ui uniform3ui uniform4ui uniform1uiv uniform2uiv uniform3uiv uniform4uiv uniformMatrix2x3fv uniformMatrix3x2fv uniformMatrix2x4fv uniformMatrix4x2fv uniformMatrix3x4fv uniformMatrix4x3fv vertexAttribI4i vertexAttribI4iv vertexAttribI4ui vertexAttribI4uiv vertexAttribIPointer vertexAttribDivisor drawArraysInstanced drawElementsInstanced drawRangeElements drawBuffers clearBufferiv clearBufferuiv clearBufferfv clearBufferfi createQuery deleteQuery isQuery beginQuery endQuery getQuery getQueryParameter createSampler deleteSampler isSampler bindSampler samplerParameteri samplerParameterf getSamplerParameter fenceSync isSync deleteSync clientWaitSync waitSync getSyncParameter createTransformFeedback deleteTransformFeedback isTransformFeedback bindTransformFeedback beginTransformFeedback endTransformFeedback transformFeedbackVaryings getTransformFeedbackVarying pauseTransformFeedback resumeTransformFeedback bindBufferBase bindBufferRange getIndexedParameter getUniformIndices getActiveUniforms getUniformBlockIndex getActiveUniformBlockParameter getActiveUniformBlockName uniformBlockBinding createVertexArray deleteVertexArray isVertexArray bindVertexArray Game Link: <a href="https://app.roll20.net/campaigns/details/7666222/the-show-must-go-on" rel="nofollow">https://app.roll20.net/campaigns/details/7666222/the-show-must-go-on</a> Game Settings Game background image was changed. All others unchanged. Map Settings Using UDL No Explorer Mode Daylight mode was on. Issue does not persist with Daylight mode off. Token Settings No light, just Night Vision on one token. Do you have Hardware Acceleration turned On or Off in your browser or system: On Speedtest Results Console Log (index):13 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' 'sha256-dm6tOb8rwEmENe5+ec26sQvlH6Xd1CBZ7IvtZ4kJ1og=' 'sha256-jlxVUPsj/qdPM120UwbjpC4Tw7dq+obb7SYUV+lSfrI=' 'nonce-jEULOBr8Sjkrgo4e' <a href="http://cdn.inspectlet.com" rel="nofollow">http://cdn.inspectlet.com</a> https://*.googlesyndication.com https://*.doubleclick.net <a href="https://partner.googleadservices.com" rel="nofollow">https://partner.googleadservices.com</a> <a href="https://www.googletagservices.com" rel="nofollow">https://www.googletagservices.com</a> <a href="https://ssl.google-analytics.com" rel="nofollow">https://ssl.google-analytics.com</a> <a href="https://www.google-analytics.com" rel="nofollow">https://www.google-analytics.com</a> <a href="https://ajax.googleapis.com" rel="nofollow">https://ajax.googleapis.com</a> <a href="http://ajax.googleapis.com" rel="nofollow">http://ajax.googleapis.com</a> <a href="https://d3clqjduf2gvxg.cloudfront.net" rel="nofollow">https://d3clqjduf2gvxg.cloudfront.net</a> <a href="https://cdn.firebase.com" rel="nofollow">https://cdn.firebase.com</a> https://*.firebaseio.com https://*.tokbox.com https://*.opentok.com <a href="http://static.opentok.com" rel="nofollow">http://static.opentok.com</a> <a href="http://www.google-analytics.com" rel="nofollow">http://www.google-analytics.com</a> <a href="http://cdn.crowdin.com" rel="nofollow">http://cdn.crowdin.com</a> <a href="https://crowdin.com" rel="nofollow">https://crowdin.com</a> <a href="http://stun.l.google.com" rel="nofollow">http://stun.l.google.com</a> *.sentry-cdn.com". Either the 'unsafe-inline' keyword, a hash ('sha256-pTNkp50U6tVf8FuQzTMh762+Nza6SP/j648+XWvdL+s='), or a nonce ('nonce-...') is required to enable inline execution. jquery.migrate.js:20 JQMIGRATE: Logging is active app.roll20.net/:15 CAMPAIGN ID: 7666222 (index):325 Logged in - checking Account GDPR status: true app.js?1593730651:552 70 app.js?1593730651:553 Custom Sheet Translation app.js?1593730651:557 TOUCH SUPPORTED: false app.js?1593730651:557 USING WEBGL ACCELERATION... app.js?1593730651:557 WEBGL STARTUP SUCCESS app.js?1593730651:575 Loading Custom character sheet. app.js?1593730651:575 Including compendium template css. tutorial_tips.js:7 tuts loaded sheetsandboxworker.js?1593788161947:682 Starting up WEB WORKER icon.png:1 Failed to load resource: the server responded with a status of 403 (Forbidden) (index):417 Refused to load the script '<a href="https://js-agent.newrelic.com/nr-1167.min.js" rel="nofollow">https://js-agent.newrelic.com/nr-1167.min.js</a>' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' 'sha256-dm6tOb8rwEmENe5+ec26sQvlH6Xd1CBZ7IvtZ4kJ1og=' 'sha256-jlxVUPsj/qdPM120UwbjpC4Tw7dq+obb7SYUV+lSfrI=' 'nonce-jEULOBr8Sjkrgo4e' <a href="http://cdn.inspectlet.com" rel="nofollow">http://cdn.inspectlet.com</a> https://*.googlesyndication.com https://*.doubleclick.net <a href="https://partner.googleadservices.com" rel="nofollow">https://partner.googleadservices.com</a> <a href="https://www.googletagservices.com" rel="nofollow">https://www.googletagservices.com</a> <a href="https://ssl.google-analytics.com" rel="nofollow">https://ssl.google-analytics.com</a> <a href="https://www.google-analytics.com" rel="nofollow">https://www.google-analytics.com</a> <a href="https://ajax.googleapis.com" rel="nofollow">https://ajax.googleapis.com</a> <a href="http://ajax.googleapis.com" rel="nofollow">http://ajax.googleapis.com</a> <a href="https://d3clqjduf2gvxg.cloudfront.net" rel="nofollow">https://d3clqjduf2gvxg.cloudfront.net</a> <a href="https://cdn.firebase.com" rel="nofollow">https://cdn.firebase.com</a> https://*.firebaseio.com https://*.tokbox.com https://*.opentok.com <a href="http://static.opentok.com" rel="nofollow">http://static.opentok.com</a> <a href="http://www.google-analytics.com" rel="nofollow">http://www.google-analytics.com</a> <a href="http://cdn.crowdin.com" rel="nofollow">http://cdn.crowdin.com</a> <a href="https://crowdin.com" rel="nofollow">https://crowdin.com</a> <a href="http://stun.l.google.com" rel="nofollow">http://stun.l.google.com</a> *.sentry-cdn.com". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback. r @ (index):417 app.js?1593730651:566 Final page load. app.js?1593730651:564 Auth'ed. app.js?1593730651:564 Go post auth! app.js?1593730651:564 initial setup app.js?1593730651:564 joining game... 16app.js?1593730651:561 Full load page! app.js?1593730651:564 We have 16 pages app.js?1593730651:562 Player -M912QIWcd6vwnFpDQH4 is offline... app.js?1593730651:562 Player -M913S1TTprRe2mhbpr- is offline... app.js?1593730651:562 Player -M9EQL6AjfcoGeOa612h is offline... app.js?1593730651:562 Player -M9_GQP5bgokcaYDiytb is offline... app.js?1593730651:562 Player -M9pM-CX1v1-UEKz2Sw8 is offline... app.js?1593730651:564 Deferred finish joining... app.js?1593730651:552 Firebase Online 50app.js?1593730651:574 Error while checking for roll total... s3.amazonaws.com/files.d20.io/marketplace/1209023/oSeHVdpkgL5_FBqP1nG6Vw/thumb.png?1586560547&15898435685:1 Failed to load resource: the server responded with a status of 403 (Forbidden) app.js?1593730651:552 Error loading graphic, probably due to CORS. Trying once without CORS for <a href="https://s3.amazonaws.com/files.d20.io/marketplace/1209023/oSeHVdpkgL5_FBqP1nG6Vw/thumb.png?1586560547&1589843568" rel="nofollow">https://s3.amazonaws.com/files.d20.io/marketplace/1209023/oSeHVdpkgL5_FBqP1nG6Vw/thumb.png?1586560547&1589843568</a> (anonymous) @ app.js?1593730651:552 thumb.webp:1 Failed to load resource: the server responded with a status of 403 (Forbidden) s3.amazonaws.com/files.d20.io/marketplace/1209023/oSeHVdpkgL5_FBqP1nG6Vw/thumb.png?1586560547&15898435681593788173809:1 Failed to load resource: the server responded with a status of 403 (Forbidden) app.js?1593730651:552 Second load attempt failed for <a href="https://s3.amazonaws.com/files.d20.io/marketplace/1209023/oSeHVdpkgL5_FBqP1nG6Vw/thumb.png?1586560547&15898435681593788173809" rel="nofollow">https://s3.amazonaws.com/files.d20.io/marketplace/1209023/oSeHVdpkgL5_FBqP1nG6Vw/thumb.png?1586560547&15898435681593788173809</a> s @ app.js?1593730651:552 11app.js?1593730651:558 Debounced init page! jquery.migrate.js:39 JQMIGRATE: jQuery.fn.attr('checked') may use property instead of attribute migrateWarn @ jquery.migrate.js:39 jquery.migrate.js:41 console.trace migrateWarn @ jquery.migrate.js:41 Pathfinder2ByRoll20.js:451 Pathfinder Second Edition by Roll20: Alayern's character, version 3.4 Pathfinder2ByRoll20.js:451 Pathfinder Second Edition by Roll20: Light Source, version 3.4 thumb.webp:1 Failed to load resource: the server responded with a status of 403 (Forbidden) 4app.js?1593730651:558 Debounced init page! base.js?1588774597:45 undefined jquery.migrate.js:39 JQMIGRATE: jQuery.fn.error() is deprecated migrateWarn @ jquery.migrate.js:39 jquery.migrate.js:41 console.trace migrateWarn @ jquery.migrate.js:41 base.js?1588774597:45 undefined app.js?1593730651:558 Debounced init page! DevTools failed to load SourceMap: Could not load content for <a href="https://app.roll20.net/js/d20/underscore-min.map" rel="nofollow">https://app.roll20.net/js/d20/underscore-min.map</a>: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE app.js?1593730651:555 Uncaught (in promise) Destroyed deinitialize @ app.js?1593730651:555 deinitPage @ app.js?1593730651:554 switchPageByIndex @ app.js?1593730651:564 switchPageById @ app.js?1593730651:564 (anonymous) @ app.js?1593730651:570 dispatch @ jquery-1.9.1.js:3074 elemData.handle @ jquery-1.9.1.js:2750 nrWrapper @ (index):417