Shader logic and example shaders, needs work. No MERGE - #462

Draft
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master
Draft

Shader logic and example shaders, needs work. No MERGE#462
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master

Conversation

@zjoasan

@zjoasanzjoasan commented Jan 21, 2026

Copy link
Copy Markdown
Member

Remarked "Shader logic" and example files, AI-help

Here is the code, including using iGPU for shader calcs. I also included 3 shaders, one simple vortex, one framebuffer timed pixel shader and a advanced combine shader. I have not tested it yet, have a bunch of feature still missing or that i want to implement. But due to lack of sleep I've chose to share the foundation, since I'm now don't remember if the code for drawing the shader was added or not. More eyes on it would be good.

Files that are in focus,

  • /common/include/adapteroption.h
  • /virtual display driver(hdr)/mttvdd/driver.h
  • /virtual display driver(hdr)/mttvdd/driver.cpp

All other "bits in the PR" is temporary files and agent bloat.

Every added bit of logic and comments are commented this way: // #--- followed by logic or "// #--- // " if it was an remark. So in order to test the code with a compile you only remove "// #--- " from all lines that has that in the beginning. That's the three files mentioned above.

cto-newBotand others added 23 commits January 18, 2026 21:09
…haders-vortex-wave
Add Vortex and Wave Shader Pairs for Virtual Display Driver (HDR)
dang wrong path
feat(shader): add vortex_shader and wave_shader under Common/Include/Shaders
from another agent
 there might be stuff here from that is better
…ation
This change introduces pre-activation scaffolds for iGPU/shader integration to enable blind review before activation. It adds iGPU detection hooks and related state, shader support placeholders, and a ShaderRendererEnabled flag. All new iGPU/shader code is prefixed with // #--- to allow mass-activation later.
feat(igpu-shaders): prepare blind-review diffs for shader/iGPU integration
Delete testcode folder from repository root
for the agent t make sure all alterations is commented out, in the new code.
…rent-only
Align current files with orgfolder baseline and remark current-only code
… old shader directory
Move CRT_shader.h to the shared include location to align with other shader headers.
- Relocate CRT_shader.h to /Common/Include/Shaders/CRT_shader.h
- Delete all contents of the old Virtual Display Driver (HDR)/Common/Shaders and remove the now-empty directories
- Remove the obsolete Virtual Display Driver (HDR)/Common directory
- Update internal build references to use the new header path
BREAKING CHANGE: Removed the old include path under /Virtual Display Driver (HDR)/Common and its Shaders directory; update includes to /Common/Include/Shaders/CRT_shader.h where appropriate.
…-include-shaders-cleanup-virtual-display-driver-common-shader
Move CRT_shader.h to Common/Include/Shaders and remove legacy shader directory
This cleanup removes deprecated directories to simplify the repository structure.
- Remove the orgfolder directory and all its contents
- Remove the scripts directory and all its contents
- No code changes or user-facing behavior; no migrations required
Remove deprecated orgfolder and scripts directories
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Don't merge this PR yet!!

cto-newBot added 2 commits January 21, 2026 09:27
…ex for cross-GPU shader rendering
Add DXGI shared texture support and keyed mutex synchronization to enable shader-based rendering across dGPU and iGPU. Shader bytecode can be loaded at runtime via a controller pipe and toggled on/off via pipe commands. Routing of shader execution is controlled by igpu-shader XML setting, allowing iGPU to render on the shared texture when enabled.
### Summary
Introduce DXGI shared texture resources and mutex-based synchronization to perform GPU shader rendering on a shared target without RAM copies. Shader bytecode can be uploaded through a pipe channel and executed in a GPU-resident path.
### Details
- Add shared texture, keyed mutex, SRV/RTV and shader state to Direct3DDevice
- Implement pipe commands: loadshader, shader_enable, shader_disable; store shader bytecode in driver memory
- Read igpu-shader from vdd_settings.xml and route shader path to iGPU or dGPU
- Integrate shader execution into SwapChainProcessor using keyed mutex coordination
- Ensure textures are created with D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
- No host RAM copies; all shader operations stay on GPU; minimal impact on existing DXGI flow
feat(dxgi-shared-shader): integrate DXGI shared texture and keyed mutex for cross-GPU shader rendering
@ReenigneArcher

This comment was marked as resolved.

@zjoasan

Copy link
Copy Markdown
MemberAuthor

@ReenigneArcher My "Git-Fu" needs improvements... as do most of my actual coding, that is why I went with remarking any code changes. Due to lack of time, I've left this in this manner. In the hope that someone with more skill with implementing shaders, swapchains and share memory between gpus could take a look at it.

Ps. I hope to have time to get back to Swedish translation on your software, when things calm down in my personal life.

@zjoasanzjoasan added help wanted Extra attention is needed Draft not yet mature enough for merging labels Feb 1, 2026
@zjoasanzjoasan changed the title DO NOT COMMIT in current state read msgShader logic and example shaders, needs work. No MERGEFeb 1, 2026
@ReenigneArcher

This comment was marked as resolved.

@zjoasan
zjoasan marked this pull request as draft February 1, 2026 13:59
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Thanks again!

Load HLSL or CSO shaders from the configured shader directory during swapchain processing so the PR's shader work changes the virtual display output.
Remove the dead generated shader blobs and stale shader scaffolding, and restore the docs and install script behavior reviewers need to validate it.
Made-with: Cursor
Resolve the remaining README and script conflicts so PR VirtualDrivers#462 can merge cleanly while preserving the tested runtime shader implementation.
Made-with: Cursor
Resolve the WDK header and library directories from the actual runner installation so CI does not assume a single Windows Kits layout. This lets the project consume those overrides for x64 and ARM64 so the indirect display headers and stub libraries stay aligned in CI.
Made-with: Cursor
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Draftnot yet mature enough for merginghelp wantedExtra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@zjoasan@ReenigneArcher@itsmikethetech
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Shader logic and example shaders, needs work. No MERGE - #462

Draft
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master
Draft

Shader logic and example shaders, needs work. No MERGE#462
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master

Conversation

@zjoasan

@zjoasanzjoasan commented Jan 21, 2026

Copy link
Copy Markdown
Member

Remarked "Shader logic" and example files, AI-help

Here is the code, including using iGPU for shader calcs. I also included 3 shaders, one simple vortex, one framebuffer timed pixel shader and a advanced combine shader. I have not tested it yet, have a bunch of feature still missing or that i want to implement. But due to lack of sleep I've chose to share the foundation, since I'm now don't remember if the code for drawing the shader was added or not. More eyes on it would be good.

Files that are in focus,

  • /common/include/adapteroption.h
  • /virtual display driver(hdr)/mttvdd/driver.h
  • /virtual display driver(hdr)/mttvdd/driver.cpp

All other "bits in the PR" is temporary files and agent bloat.

Every added bit of logic and comments are commented this way: // #--- followed by logic or "// #--- // " if it was an remark. So in order to test the code with a compile you only remove "// #--- " from all lines that has that in the beginning. That's the three files mentioned above.

cto-newBotand others added 23 commits January 18, 2026 21:09
…haders-vortex-wave
Add Vortex and Wave Shader Pairs for Virtual Display Driver (HDR)
dang wrong path
feat(shader): add vortex_shader and wave_shader under Common/Include/Shaders
from another agent
 there might be stuff here from that is better
…ation
This change introduces pre-activation scaffolds for iGPU/shader integration to enable blind review before activation. It adds iGPU detection hooks and related state, shader support placeholders, and a ShaderRendererEnabled flag. All new iGPU/shader code is prefixed with // #--- to allow mass-activation later.
feat(igpu-shaders): prepare blind-review diffs for shader/iGPU integration
Delete testcode folder from repository root
for the agent t make sure all alterations is commented out, in the new code.
…rent-only
Align current files with orgfolder baseline and remark current-only code
… old shader directory
Move CRT_shader.h to the shared include location to align with other shader headers.
- Relocate CRT_shader.h to /Common/Include/Shaders/CRT_shader.h
- Delete all contents of the old Virtual Display Driver (HDR)/Common/Shaders and remove the now-empty directories
- Remove the obsolete Virtual Display Driver (HDR)/Common directory
- Update internal build references to use the new header path
BREAKING CHANGE: Removed the old include path under /Virtual Display Driver (HDR)/Common and its Shaders directory; update includes to /Common/Include/Shaders/CRT_shader.h where appropriate.
…-include-shaders-cleanup-virtual-display-driver-common-shader
Move CRT_shader.h to Common/Include/Shaders and remove legacy shader directory
This cleanup removes deprecated directories to simplify the repository structure.
- Remove the orgfolder directory and all its contents
- Remove the scripts directory and all its contents
- No code changes or user-facing behavior; no migrations required
Remove deprecated orgfolder and scripts directories
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Don't merge this PR yet!!

cto-newBot added 2 commits January 21, 2026 09:27
…ex for cross-GPU shader rendering
Add DXGI shared texture support and keyed mutex synchronization to enable shader-based rendering across dGPU and iGPU. Shader bytecode can be loaded at runtime via a controller pipe and toggled on/off via pipe commands. Routing of shader execution is controlled by igpu-shader XML setting, allowing iGPU to render on the shared texture when enabled.
### Summary
Introduce DXGI shared texture resources and mutex-based synchronization to perform GPU shader rendering on a shared target without RAM copies. Shader bytecode can be uploaded through a pipe channel and executed in a GPU-resident path.
### Details
- Add shared texture, keyed mutex, SRV/RTV and shader state to Direct3DDevice
- Implement pipe commands: loadshader, shader_enable, shader_disable; store shader bytecode in driver memory
- Read igpu-shader from vdd_settings.xml and route shader path to iGPU or dGPU
- Integrate shader execution into SwapChainProcessor using keyed mutex coordination
- Ensure textures are created with D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
- No host RAM copies; all shader operations stay on GPU; minimal impact on existing DXGI flow
feat(dxgi-shared-shader): integrate DXGI shared texture and keyed mutex for cross-GPU shader rendering
@ReenigneArcher

This comment was marked as resolved.

@zjoasan

Copy link
Copy Markdown
MemberAuthor

@ReenigneArcher My "Git-Fu" needs improvements... as do most of my actual coding, that is why I went with remarking any code changes. Due to lack of time, I've left this in this manner. In the hope that someone with more skill with implementing shaders, swapchains and share memory between gpus could take a look at it.

Ps. I hope to have time to get back to Swedish translation on your software, when things calm down in my personal life.

@zjoasanzjoasan added help wanted Extra attention is needed Draft not yet mature enough for merging labels Feb 1, 2026
@zjoasanzjoasan changed the title DO NOT COMMIT in current state read msgShader logic and example shaders, needs work. No MERGEFeb 1, 2026
@ReenigneArcher

This comment was marked as resolved.

@zjoasan
zjoasan marked this pull request as draft February 1, 2026 13:59
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Thanks again!

Load HLSL or CSO shaders from the configured shader directory during swapchain processing so the PR's shader work changes the virtual display output.
Remove the dead generated shader blobs and stale shader scaffolding, and restore the docs and install script behavior reviewers need to validate it.
Made-with: Cursor
Resolve the remaining README and script conflicts so PR VirtualDrivers#462 can merge cleanly while preserving the tested runtime shader implementation.
Made-with: Cursor
Resolve the WDK header and library directories from the actual runner installation so CI does not assume a single Windows Kits layout. This lets the project consume those overrides for x64 and ARM64 so the indirect display headers and stub libraries stay aligned in CI.
Made-with: Cursor
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Draftnot yet mature enough for merginghelp wantedExtra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@zjoasan@ReenigneArcher@itsmikethetech
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Shader logic and example shaders, needs work. No MERGE - #462

Draft
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master
Draft

Shader logic and example shaders, needs work. No MERGE#462
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master

Conversation

@zjoasan

@zjoasanzjoasan commented Jan 21, 2026

Copy link
Copy Markdown
Member

Remarked "Shader logic" and example files, AI-help

Here is the code, including using iGPU for shader calcs. I also included 3 shaders, one simple vortex, one framebuffer timed pixel shader and a advanced combine shader. I have not tested it yet, have a bunch of feature still missing or that i want to implement. But due to lack of sleep I've chose to share the foundation, since I'm now don't remember if the code for drawing the shader was added or not. More eyes on it would be good.

Files that are in focus,

  • /common/include/adapteroption.h
  • /virtual display driver(hdr)/mttvdd/driver.h
  • /virtual display driver(hdr)/mttvdd/driver.cpp

All other "bits in the PR" is temporary files and agent bloat.

Every added bit of logic and comments are commented this way: // #--- followed by logic or "// #--- // " if it was an remark. So in order to test the code with a compile you only remove "// #--- " from all lines that has that in the beginning. That's the three files mentioned above.

cto-newBotand others added 23 commits January 18, 2026 21:09
…haders-vortex-wave
Add Vortex and Wave Shader Pairs for Virtual Display Driver (HDR)
dang wrong path
feat(shader): add vortex_shader and wave_shader under Common/Include/Shaders
from another agent
 there might be stuff here from that is better
…ation
This change introduces pre-activation scaffolds for iGPU/shader integration to enable blind review before activation. It adds iGPU detection hooks and related state, shader support placeholders, and a ShaderRendererEnabled flag. All new iGPU/shader code is prefixed with // #--- to allow mass-activation later.
feat(igpu-shaders): prepare blind-review diffs for shader/iGPU integration
Delete testcode folder from repository root
for the agent t make sure all alterations is commented out, in the new code.
…rent-only
Align current files with orgfolder baseline and remark current-only code
… old shader directory
Move CRT_shader.h to the shared include location to align with other shader headers.
- Relocate CRT_shader.h to /Common/Include/Shaders/CRT_shader.h
- Delete all contents of the old Virtual Display Driver (HDR)/Common/Shaders and remove the now-empty directories
- Remove the obsolete Virtual Display Driver (HDR)/Common directory
- Update internal build references to use the new header path
BREAKING CHANGE: Removed the old include path under /Virtual Display Driver (HDR)/Common and its Shaders directory; update includes to /Common/Include/Shaders/CRT_shader.h where appropriate.
…-include-shaders-cleanup-virtual-display-driver-common-shader
Move CRT_shader.h to Common/Include/Shaders and remove legacy shader directory
This cleanup removes deprecated directories to simplify the repository structure.
- Remove the orgfolder directory and all its contents
- Remove the scripts directory and all its contents
- No code changes or user-facing behavior; no migrations required
Remove deprecated orgfolder and scripts directories
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Don't merge this PR yet!!

cto-newBot added 2 commits January 21, 2026 09:27
…ex for cross-GPU shader rendering
Add DXGI shared texture support and keyed mutex synchronization to enable shader-based rendering across dGPU and iGPU. Shader bytecode can be loaded at runtime via a controller pipe and toggled on/off via pipe commands. Routing of shader execution is controlled by igpu-shader XML setting, allowing iGPU to render on the shared texture when enabled.
### Summary
Introduce DXGI shared texture resources and mutex-based synchronization to perform GPU shader rendering on a shared target without RAM copies. Shader bytecode can be uploaded through a pipe channel and executed in a GPU-resident path.
### Details
- Add shared texture, keyed mutex, SRV/RTV and shader state to Direct3DDevice
- Implement pipe commands: loadshader, shader_enable, shader_disable; store shader bytecode in driver memory
- Read igpu-shader from vdd_settings.xml and route shader path to iGPU or dGPU
- Integrate shader execution into SwapChainProcessor using keyed mutex coordination
- Ensure textures are created with D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
- No host RAM copies; all shader operations stay on GPU; minimal impact on existing DXGI flow
feat(dxgi-shared-shader): integrate DXGI shared texture and keyed mutex for cross-GPU shader rendering
@ReenigneArcher

This comment was marked as resolved.

@zjoasan

Copy link
Copy Markdown
MemberAuthor

@ReenigneArcher My "Git-Fu" needs improvements... as do most of my actual coding, that is why I went with remarking any code changes. Due to lack of time, I've left this in this manner. In the hope that someone with more skill with implementing shaders, swapchains and share memory between gpus could take a look at it.

Ps. I hope to have time to get back to Swedish translation on your software, when things calm down in my personal life.

@zjoasanzjoasan added help wanted Extra attention is needed Draft not yet mature enough for merging labels Feb 1, 2026
@zjoasanzjoasan changed the title DO NOT COMMIT in current state read msgShader logic and example shaders, needs work. No MERGEFeb 1, 2026
@ReenigneArcher

This comment was marked as resolved.

@zjoasan
zjoasan marked this pull request as draft February 1, 2026 13:59
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Thanks again!

Load HLSL or CSO shaders from the configured shader directory during swapchain processing so the PR's shader work changes the virtual display output.
Remove the dead generated shader blobs and stale shader scaffolding, and restore the docs and install script behavior reviewers need to validate it.
Made-with: Cursor
Resolve the remaining README and script conflicts so PR VirtualDrivers#462 can merge cleanly while preserving the tested runtime shader implementation.
Made-with: Cursor
Resolve the WDK header and library directories from the actual runner installation so CI does not assume a single Windows Kits layout. This lets the project consume those overrides for x64 and ARM64 so the indirect display headers and stub libraries stay aligned in CI.
Made-with: Cursor
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Draftnot yet mature enough for merginghelp wantedExtra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@zjoasan@ReenigneArcher@itsmikethetech
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Shader logic and example shaders, needs work. No MERGE - #462

Draft
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master
Draft

Shader logic and example shaders, needs work. No MERGE#462
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master

Conversation

@zjoasan

@zjoasanzjoasan commented Jan 21, 2026

Copy link
Copy Markdown
Member

Remarked "Shader logic" and example files, AI-help

Here is the code, including using iGPU for shader calcs. I also included 3 shaders, one simple vortex, one framebuffer timed pixel shader and a advanced combine shader. I have not tested it yet, have a bunch of feature still missing or that i want to implement. But due to lack of sleep I've chose to share the foundation, since I'm now don't remember if the code for drawing the shader was added or not. More eyes on it would be good.

Files that are in focus,

  • /common/include/adapteroption.h
  • /virtual display driver(hdr)/mttvdd/driver.h
  • /virtual display driver(hdr)/mttvdd/driver.cpp

All other "bits in the PR" is temporary files and agent bloat.

Every added bit of logic and comments are commented this way: // #--- followed by logic or "// #--- // " if it was an remark. So in order to test the code with a compile you only remove "// #--- " from all lines that has that in the beginning. That's the three files mentioned above.

cto-newBotand others added 23 commits January 18, 2026 21:09
…haders-vortex-wave
Add Vortex and Wave Shader Pairs for Virtual Display Driver (HDR)
dang wrong path
feat(shader): add vortex_shader and wave_shader under Common/Include/Shaders
from another agent
 there might be stuff here from that is better
…ation
This change introduces pre-activation scaffolds for iGPU/shader integration to enable blind review before activation. It adds iGPU detection hooks and related state, shader support placeholders, and a ShaderRendererEnabled flag. All new iGPU/shader code is prefixed with // #--- to allow mass-activation later.
feat(igpu-shaders): prepare blind-review diffs for shader/iGPU integration
Delete testcode folder from repository root
for the agent t make sure all alterations is commented out, in the new code.
…rent-only
Align current files with orgfolder baseline and remark current-only code
… old shader directory
Move CRT_shader.h to the shared include location to align with other shader headers.
- Relocate CRT_shader.h to /Common/Include/Shaders/CRT_shader.h
- Delete all contents of the old Virtual Display Driver (HDR)/Common/Shaders and remove the now-empty directories
- Remove the obsolete Virtual Display Driver (HDR)/Common directory
- Update internal build references to use the new header path
BREAKING CHANGE: Removed the old include path under /Virtual Display Driver (HDR)/Common and its Shaders directory; update includes to /Common/Include/Shaders/CRT_shader.h where appropriate.
…-include-shaders-cleanup-virtual-display-driver-common-shader
Move CRT_shader.h to Common/Include/Shaders and remove legacy shader directory
This cleanup removes deprecated directories to simplify the repository structure.
- Remove the orgfolder directory and all its contents
- Remove the scripts directory and all its contents
- No code changes or user-facing behavior; no migrations required
Remove deprecated orgfolder and scripts directories
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Don't merge this PR yet!!

cto-newBot added 2 commits January 21, 2026 09:27
…ex for cross-GPU shader rendering
Add DXGI shared texture support and keyed mutex synchronization to enable shader-based rendering across dGPU and iGPU. Shader bytecode can be loaded at runtime via a controller pipe and toggled on/off via pipe commands. Routing of shader execution is controlled by igpu-shader XML setting, allowing iGPU to render on the shared texture when enabled.
### Summary
Introduce DXGI shared texture resources and mutex-based synchronization to perform GPU shader rendering on a shared target without RAM copies. Shader bytecode can be uploaded through a pipe channel and executed in a GPU-resident path.
### Details
- Add shared texture, keyed mutex, SRV/RTV and shader state to Direct3DDevice
- Implement pipe commands: loadshader, shader_enable, shader_disable; store shader bytecode in driver memory
- Read igpu-shader from vdd_settings.xml and route shader path to iGPU or dGPU
- Integrate shader execution into SwapChainProcessor using keyed mutex coordination
- Ensure textures are created with D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
- No host RAM copies; all shader operations stay on GPU; minimal impact on existing DXGI flow
feat(dxgi-shared-shader): integrate DXGI shared texture and keyed mutex for cross-GPU shader rendering
@ReenigneArcher

This comment was marked as resolved.

@zjoasan

Copy link
Copy Markdown
MemberAuthor

@ReenigneArcher My "Git-Fu" needs improvements... as do most of my actual coding, that is why I went with remarking any code changes. Due to lack of time, I've left this in this manner. In the hope that someone with more skill with implementing shaders, swapchains and share memory between gpus could take a look at it.

Ps. I hope to have time to get back to Swedish translation on your software, when things calm down in my personal life.

@zjoasanzjoasan added help wanted Extra attention is needed Draft not yet mature enough for merging labels Feb 1, 2026
@zjoasanzjoasan changed the title DO NOT COMMIT in current state read msgShader logic and example shaders, needs work. No MERGEFeb 1, 2026
@ReenigneArcher

This comment was marked as resolved.

@zjoasan
zjoasan marked this pull request as draft February 1, 2026 13:59
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Thanks again!

Load HLSL or CSO shaders from the configured shader directory during swapchain processing so the PR's shader work changes the virtual display output.
Remove the dead generated shader blobs and stale shader scaffolding, and restore the docs and install script behavior reviewers need to validate it.
Made-with: Cursor
Resolve the remaining README and script conflicts so PR VirtualDrivers#462 can merge cleanly while preserving the tested runtime shader implementation.
Made-with: Cursor
Resolve the WDK header and library directories from the actual runner installation so CI does not assume a single Windows Kits layout. This lets the project consume those overrides for x64 and ARM64 so the indirect display headers and stub libraries stay aligned in CI.
Made-with: Cursor
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Draftnot yet mature enough for merginghelp wantedExtra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@zjoasan@ReenigneArcher@itsmikethetech
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Shader logic and example shaders, needs work. No MERGE - #462

Draft
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master
Draft

Shader logic and example shaders, needs work. No MERGE#462
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master

Conversation

@zjoasan

@zjoasanzjoasan commented Jan 21, 2026

Copy link
Copy Markdown
Member

Remarked "Shader logic" and example files, AI-help

Here is the code, including using iGPU for shader calcs. I also included 3 shaders, one simple vortex, one framebuffer timed pixel shader and a advanced combine shader. I have not tested it yet, have a bunch of feature still missing or that i want to implement. But due to lack of sleep I've chose to share the foundation, since I'm now don't remember if the code for drawing the shader was added or not. More eyes on it would be good.

Files that are in focus,

  • /common/include/adapteroption.h
  • /virtual display driver(hdr)/mttvdd/driver.h
  • /virtual display driver(hdr)/mttvdd/driver.cpp

All other "bits in the PR" is temporary files and agent bloat.

Every added bit of logic and comments are commented this way: // #--- followed by logic or "// #--- // " if it was an remark. So in order to test the code with a compile you only remove "// #--- " from all lines that has that in the beginning. That's the three files mentioned above.

cto-newBotand others added 23 commits January 18, 2026 21:09
…haders-vortex-wave
Add Vortex and Wave Shader Pairs for Virtual Display Driver (HDR)
dang wrong path
feat(shader): add vortex_shader and wave_shader under Common/Include/Shaders
from another agent
 there might be stuff here from that is better
…ation
This change introduces pre-activation scaffolds for iGPU/shader integration to enable blind review before activation. It adds iGPU detection hooks and related state, shader support placeholders, and a ShaderRendererEnabled flag. All new iGPU/shader code is prefixed with // #--- to allow mass-activation later.
feat(igpu-shaders): prepare blind-review diffs for shader/iGPU integration
Delete testcode folder from repository root
for the agent t make sure all alterations is commented out, in the new code.
…rent-only
Align current files with orgfolder baseline and remark current-only code
… old shader directory
Move CRT_shader.h to the shared include location to align with other shader headers.
- Relocate CRT_shader.h to /Common/Include/Shaders/CRT_shader.h
- Delete all contents of the old Virtual Display Driver (HDR)/Common/Shaders and remove the now-empty directories
- Remove the obsolete Virtual Display Driver (HDR)/Common directory
- Update internal build references to use the new header path
BREAKING CHANGE: Removed the old include path under /Virtual Display Driver (HDR)/Common and its Shaders directory; update includes to /Common/Include/Shaders/CRT_shader.h where appropriate.
…-include-shaders-cleanup-virtual-display-driver-common-shader
Move CRT_shader.h to Common/Include/Shaders and remove legacy shader directory
This cleanup removes deprecated directories to simplify the repository structure.
- Remove the orgfolder directory and all its contents
- Remove the scripts directory and all its contents
- No code changes or user-facing behavior; no migrations required
Remove deprecated orgfolder and scripts directories
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Don't merge this PR yet!!

cto-newBot added 2 commits January 21, 2026 09:27
…ex for cross-GPU shader rendering
Add DXGI shared texture support and keyed mutex synchronization to enable shader-based rendering across dGPU and iGPU. Shader bytecode can be loaded at runtime via a controller pipe and toggled on/off via pipe commands. Routing of shader execution is controlled by igpu-shader XML setting, allowing iGPU to render on the shared texture when enabled.
### Summary
Introduce DXGI shared texture resources and mutex-based synchronization to perform GPU shader rendering on a shared target without RAM copies. Shader bytecode can be uploaded through a pipe channel and executed in a GPU-resident path.
### Details
- Add shared texture, keyed mutex, SRV/RTV and shader state to Direct3DDevice
- Implement pipe commands: loadshader, shader_enable, shader_disable; store shader bytecode in driver memory
- Read igpu-shader from vdd_settings.xml and route shader path to iGPU or dGPU
- Integrate shader execution into SwapChainProcessor using keyed mutex coordination
- Ensure textures are created with D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
- No host RAM copies; all shader operations stay on GPU; minimal impact on existing DXGI flow
feat(dxgi-shared-shader): integrate DXGI shared texture and keyed mutex for cross-GPU shader rendering
@ReenigneArcher

This comment was marked as resolved.

@zjoasan

Copy link
Copy Markdown
MemberAuthor

@ReenigneArcher My "Git-Fu" needs improvements... as do most of my actual coding, that is why I went with remarking any code changes. Due to lack of time, I've left this in this manner. In the hope that someone with more skill with implementing shaders, swapchains and share memory between gpus could take a look at it.

Ps. I hope to have time to get back to Swedish translation on your software, when things calm down in my personal life.

@zjoasanzjoasan added help wanted Extra attention is needed Draft not yet mature enough for merging labels Feb 1, 2026
@zjoasanzjoasan changed the title DO NOT COMMIT in current state read msgShader logic and example shaders, needs work. No MERGEFeb 1, 2026
@ReenigneArcher

This comment was marked as resolved.

@zjoasan
zjoasan marked this pull request as draft February 1, 2026 13:59
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Thanks again!

Load HLSL or CSO shaders from the configured shader directory during swapchain processing so the PR's shader work changes the virtual display output.
Remove the dead generated shader blobs and stale shader scaffolding, and restore the docs and install script behavior reviewers need to validate it.
Made-with: Cursor
Resolve the remaining README and script conflicts so PR VirtualDrivers#462 can merge cleanly while preserving the tested runtime shader implementation.
Made-with: Cursor
Resolve the WDK header and library directories from the actual runner installation so CI does not assume a single Windows Kits layout. This lets the project consume those overrides for x64 and ARM64 so the indirect display headers and stub libraries stay aligned in CI.
Made-with: Cursor
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Draftnot yet mature enough for merginghelp wantedExtra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@zjoasan@ReenigneArcher@itsmikethetech
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Shader logic and example shaders, needs work. No MERGE - #462

Draft
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master
Draft

Shader logic and example shaders, needs work. No MERGE#462
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master

Conversation

@zjoasan

@zjoasanzjoasan commented Jan 21, 2026

Copy link
Copy Markdown
Member

Remarked "Shader logic" and example files, AI-help

Here is the code, including using iGPU for shader calcs. I also included 3 shaders, one simple vortex, one framebuffer timed pixel shader and a advanced combine shader. I have not tested it yet, have a bunch of feature still missing or that i want to implement. But due to lack of sleep I've chose to share the foundation, since I'm now don't remember if the code for drawing the shader was added or not. More eyes on it would be good.

Files that are in focus,

  • /common/include/adapteroption.h
  • /virtual display driver(hdr)/mttvdd/driver.h
  • /virtual display driver(hdr)/mttvdd/driver.cpp

All other "bits in the PR" is temporary files and agent bloat.

Every added bit of logic and comments are commented this way: // #--- followed by logic or "// #--- // " if it was an remark. So in order to test the code with a compile you only remove "// #--- " from all lines that has that in the beginning. That's the three files mentioned above.

cto-newBotand others added 23 commits January 18, 2026 21:09
…haders-vortex-wave
Add Vortex and Wave Shader Pairs for Virtual Display Driver (HDR)
dang wrong path
feat(shader): add vortex_shader and wave_shader under Common/Include/Shaders
from another agent
 there might be stuff here from that is better
…ation
This change introduces pre-activation scaffolds for iGPU/shader integration to enable blind review before activation. It adds iGPU detection hooks and related state, shader support placeholders, and a ShaderRendererEnabled flag. All new iGPU/shader code is prefixed with // #--- to allow mass-activation later.
feat(igpu-shaders): prepare blind-review diffs for shader/iGPU integration
Delete testcode folder from repository root
for the agent t make sure all alterations is commented out, in the new code.
…rent-only
Align current files with orgfolder baseline and remark current-only code
… old shader directory
Move CRT_shader.h to the shared include location to align with other shader headers.
- Relocate CRT_shader.h to /Common/Include/Shaders/CRT_shader.h
- Delete all contents of the old Virtual Display Driver (HDR)/Common/Shaders and remove the now-empty directories
- Remove the obsolete Virtual Display Driver (HDR)/Common directory
- Update internal build references to use the new header path
BREAKING CHANGE: Removed the old include path under /Virtual Display Driver (HDR)/Common and its Shaders directory; update includes to /Common/Include/Shaders/CRT_shader.h where appropriate.
…-include-shaders-cleanup-virtual-display-driver-common-shader
Move CRT_shader.h to Common/Include/Shaders and remove legacy shader directory
This cleanup removes deprecated directories to simplify the repository structure.
- Remove the orgfolder directory and all its contents
- Remove the scripts directory and all its contents
- No code changes or user-facing behavior; no migrations required
Remove deprecated orgfolder and scripts directories
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Don't merge this PR yet!!

cto-newBot added 2 commits January 21, 2026 09:27
…ex for cross-GPU shader rendering
Add DXGI shared texture support and keyed mutex synchronization to enable shader-based rendering across dGPU and iGPU. Shader bytecode can be loaded at runtime via a controller pipe and toggled on/off via pipe commands. Routing of shader execution is controlled by igpu-shader XML setting, allowing iGPU to render on the shared texture when enabled.
### Summary
Introduce DXGI shared texture resources and mutex-based synchronization to perform GPU shader rendering on a shared target without RAM copies. Shader bytecode can be uploaded through a pipe channel and executed in a GPU-resident path.
### Details
- Add shared texture, keyed mutex, SRV/RTV and shader state to Direct3DDevice
- Implement pipe commands: loadshader, shader_enable, shader_disable; store shader bytecode in driver memory
- Read igpu-shader from vdd_settings.xml and route shader path to iGPU or dGPU
- Integrate shader execution into SwapChainProcessor using keyed mutex coordination
- Ensure textures are created with D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
- No host RAM copies; all shader operations stay on GPU; minimal impact on existing DXGI flow
feat(dxgi-shared-shader): integrate DXGI shared texture and keyed mutex for cross-GPU shader rendering
@ReenigneArcher

This comment was marked as resolved.

@zjoasan

Copy link
Copy Markdown
MemberAuthor

@ReenigneArcher My "Git-Fu" needs improvements... as do most of my actual coding, that is why I went with remarking any code changes. Due to lack of time, I've left this in this manner. In the hope that someone with more skill with implementing shaders, swapchains and share memory between gpus could take a look at it.

Ps. I hope to have time to get back to Swedish translation on your software, when things calm down in my personal life.

@zjoasanzjoasan added help wanted Extra attention is needed Draft not yet mature enough for merging labels Feb 1, 2026
@zjoasanzjoasan changed the title DO NOT COMMIT in current state read msgShader logic and example shaders, needs work. No MERGEFeb 1, 2026
@ReenigneArcher

This comment was marked as resolved.

@zjoasan
zjoasan marked this pull request as draft February 1, 2026 13:59
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Thanks again!

Load HLSL or CSO shaders from the configured shader directory during swapchain processing so the PR's shader work changes the virtual display output.
Remove the dead generated shader blobs and stale shader scaffolding, and restore the docs and install script behavior reviewers need to validate it.
Made-with: Cursor
Resolve the remaining README and script conflicts so PR VirtualDrivers#462 can merge cleanly while preserving the tested runtime shader implementation.
Made-with: Cursor
Resolve the WDK header and library directories from the actual runner installation so CI does not assume a single Windows Kits layout. This lets the project consume those overrides for x64 and ARM64 so the indirect display headers and stub libraries stay aligned in CI.
Made-with: Cursor
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Draftnot yet mature enough for merginghelp wantedExtra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@zjoasan@ReenigneArcher@itsmikethetech
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Shader logic and example shaders, needs work. No MERGE - #462

Draft
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master
Draft

Shader logic and example shaders, needs work. No MERGE#462
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master

Conversation

@zjoasan

@zjoasanzjoasan commented Jan 21, 2026

Copy link
Copy Markdown
Member

Remarked "Shader logic" and example files, AI-help

Here is the code, including using iGPU for shader calcs. I also included 3 shaders, one simple vortex, one framebuffer timed pixel shader and a advanced combine shader. I have not tested it yet, have a bunch of feature still missing or that i want to implement. But due to lack of sleep I've chose to share the foundation, since I'm now don't remember if the code for drawing the shader was added or not. More eyes on it would be good.

Files that are in focus,

  • /common/include/adapteroption.h
  • /virtual display driver(hdr)/mttvdd/driver.h
  • /virtual display driver(hdr)/mttvdd/driver.cpp

All other "bits in the PR" is temporary files and agent bloat.

Every added bit of logic and comments are commented this way: // #--- followed by logic or "// #--- // " if it was an remark. So in order to test the code with a compile you only remove "// #--- " from all lines that has that in the beginning. That's the three files mentioned above.

cto-newBotand others added 23 commits January 18, 2026 21:09
…haders-vortex-wave
Add Vortex and Wave Shader Pairs for Virtual Display Driver (HDR)
dang wrong path
feat(shader): add vortex_shader and wave_shader under Common/Include/Shaders
from another agent
 there might be stuff here from that is better
…ation
This change introduces pre-activation scaffolds for iGPU/shader integration to enable blind review before activation. It adds iGPU detection hooks and related state, shader support placeholders, and a ShaderRendererEnabled flag. All new iGPU/shader code is prefixed with // #--- to allow mass-activation later.
feat(igpu-shaders): prepare blind-review diffs for shader/iGPU integration
Delete testcode folder from repository root
for the agent t make sure all alterations is commented out, in the new code.
…rent-only
Align current files with orgfolder baseline and remark current-only code
… old shader directory
Move CRT_shader.h to the shared include location to align with other shader headers.
- Relocate CRT_shader.h to /Common/Include/Shaders/CRT_shader.h
- Delete all contents of the old Virtual Display Driver (HDR)/Common/Shaders and remove the now-empty directories
- Remove the obsolete Virtual Display Driver (HDR)/Common directory
- Update internal build references to use the new header path
BREAKING CHANGE: Removed the old include path under /Virtual Display Driver (HDR)/Common and its Shaders directory; update includes to /Common/Include/Shaders/CRT_shader.h where appropriate.
…-include-shaders-cleanup-virtual-display-driver-common-shader
Move CRT_shader.h to Common/Include/Shaders and remove legacy shader directory
This cleanup removes deprecated directories to simplify the repository structure.
- Remove the orgfolder directory and all its contents
- Remove the scripts directory and all its contents
- No code changes or user-facing behavior; no migrations required
Remove deprecated orgfolder and scripts directories
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Don't merge this PR yet!!

cto-newBot added 2 commits January 21, 2026 09:27
…ex for cross-GPU shader rendering
Add DXGI shared texture support and keyed mutex synchronization to enable shader-based rendering across dGPU and iGPU. Shader bytecode can be loaded at runtime via a controller pipe and toggled on/off via pipe commands. Routing of shader execution is controlled by igpu-shader XML setting, allowing iGPU to render on the shared texture when enabled.
### Summary
Introduce DXGI shared texture resources and mutex-based synchronization to perform GPU shader rendering on a shared target without RAM copies. Shader bytecode can be uploaded through a pipe channel and executed in a GPU-resident path.
### Details
- Add shared texture, keyed mutex, SRV/RTV and shader state to Direct3DDevice
- Implement pipe commands: loadshader, shader_enable, shader_disable; store shader bytecode in driver memory
- Read igpu-shader from vdd_settings.xml and route shader path to iGPU or dGPU
- Integrate shader execution into SwapChainProcessor using keyed mutex coordination
- Ensure textures are created with D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
- No host RAM copies; all shader operations stay on GPU; minimal impact on existing DXGI flow
feat(dxgi-shared-shader): integrate DXGI shared texture and keyed mutex for cross-GPU shader rendering
@ReenigneArcher

This comment was marked as resolved.

@zjoasan

Copy link
Copy Markdown
MemberAuthor

@ReenigneArcher My "Git-Fu" needs improvements... as do most of my actual coding, that is why I went with remarking any code changes. Due to lack of time, I've left this in this manner. In the hope that someone with more skill with implementing shaders, swapchains and share memory between gpus could take a look at it.

Ps. I hope to have time to get back to Swedish translation on your software, when things calm down in my personal life.

@zjoasanzjoasan added help wanted Extra attention is needed Draft not yet mature enough for merging labels Feb 1, 2026
@zjoasanzjoasan changed the title DO NOT COMMIT in current state read msgShader logic and example shaders, needs work. No MERGEFeb 1, 2026
@ReenigneArcher

This comment was marked as resolved.

@zjoasan
zjoasan marked this pull request as draft February 1, 2026 13:59
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Thanks again!

Load HLSL or CSO shaders from the configured shader directory during swapchain processing so the PR's shader work changes the virtual display output.
Remove the dead generated shader blobs and stale shader scaffolding, and restore the docs and install script behavior reviewers need to validate it.
Made-with: Cursor
Resolve the remaining README and script conflicts so PR VirtualDrivers#462 can merge cleanly while preserving the tested runtime shader implementation.
Made-with: Cursor
Resolve the WDK header and library directories from the actual runner installation so CI does not assume a single Windows Kits layout. This lets the project consume those overrides for x64 and ARM64 so the indirect display headers and stub libraries stay aligned in CI.
Made-with: Cursor
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Draftnot yet mature enough for merginghelp wantedExtra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@zjoasan@ReenigneArcher@itsmikethetech
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Shader logic and example shaders, needs work. No MERGE - #462

Draft
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master
Draft

Shader logic and example shaders, needs work. No MERGE#462
zjoasan wants to merge 28 commits into
VirtualDrivers:masterfrom
zjoasan:master

Conversation

@zjoasan

@zjoasanzjoasan commented Jan 21, 2026

Copy link
Copy Markdown
Member

Remarked "Shader logic" and example files, AI-help

Here is the code, including using iGPU for shader calcs. I also included 3 shaders, one simple vortex, one framebuffer timed pixel shader and a advanced combine shader. I have not tested it yet, have a bunch of feature still missing or that i want to implement. But due to lack of sleep I've chose to share the foundation, since I'm now don't remember if the code for drawing the shader was added or not. More eyes on it would be good.

Files that are in focus,

  • /common/include/adapteroption.h
  • /virtual display driver(hdr)/mttvdd/driver.h
  • /virtual display driver(hdr)/mttvdd/driver.cpp

All other "bits in the PR" is temporary files and agent bloat.

Every added bit of logic and comments are commented this way: // #--- followed by logic or "// #--- // " if it was an remark. So in order to test the code with a compile you only remove "// #--- " from all lines that has that in the beginning. That's the three files mentioned above.

cto-newBotand others added 23 commits January 18, 2026 21:09
…haders-vortex-wave
Add Vortex and Wave Shader Pairs for Virtual Display Driver (HDR)
dang wrong path
feat(shader): add vortex_shader and wave_shader under Common/Include/Shaders
from another agent
 there might be stuff here from that is better
…ation
This change introduces pre-activation scaffolds for iGPU/shader integration to enable blind review before activation. It adds iGPU detection hooks and related state, shader support placeholders, and a ShaderRendererEnabled flag. All new iGPU/shader code is prefixed with // #--- to allow mass-activation later.
feat(igpu-shaders): prepare blind-review diffs for shader/iGPU integration
Delete testcode folder from repository root
for the agent t make sure all alterations is commented out, in the new code.
…rent-only
Align current files with orgfolder baseline and remark current-only code
… old shader directory
Move CRT_shader.h to the shared include location to align with other shader headers.
- Relocate CRT_shader.h to /Common/Include/Shaders/CRT_shader.h
- Delete all contents of the old Virtual Display Driver (HDR)/Common/Shaders and remove the now-empty directories
- Remove the obsolete Virtual Display Driver (HDR)/Common directory
- Update internal build references to use the new header path
BREAKING CHANGE: Removed the old include path under /Virtual Display Driver (HDR)/Common and its Shaders directory; update includes to /Common/Include/Shaders/CRT_shader.h where appropriate.
…-include-shaders-cleanup-virtual-display-driver-common-shader
Move CRT_shader.h to Common/Include/Shaders and remove legacy shader directory
This cleanup removes deprecated directories to simplify the repository structure.
- Remove the orgfolder directory and all its contents
- Remove the scripts directory and all its contents
- No code changes or user-facing behavior; no migrations required
Remove deprecated orgfolder and scripts directories
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Don't merge this PR yet!!

cto-newBot added 2 commits January 21, 2026 09:27
…ex for cross-GPU shader rendering
Add DXGI shared texture support and keyed mutex synchronization to enable shader-based rendering across dGPU and iGPU. Shader bytecode can be loaded at runtime via a controller pipe and toggled on/off via pipe commands. Routing of shader execution is controlled by igpu-shader XML setting, allowing iGPU to render on the shared texture when enabled.
### Summary
Introduce DXGI shared texture resources and mutex-based synchronization to perform GPU shader rendering on a shared target without RAM copies. Shader bytecode can be uploaded through a pipe channel and executed in a GPU-resident path.
### Details
- Add shared texture, keyed mutex, SRV/RTV and shader state to Direct3DDevice
- Implement pipe commands: loadshader, shader_enable, shader_disable; store shader bytecode in driver memory
- Read igpu-shader from vdd_settings.xml and route shader path to iGPU or dGPU
- Integrate shader execution into SwapChainProcessor using keyed mutex coordination
- Ensure textures are created with D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
- No host RAM copies; all shader operations stay on GPU; minimal impact on existing DXGI flow
feat(dxgi-shared-shader): integrate DXGI shared texture and keyed mutex for cross-GPU shader rendering
@ReenigneArcher

This comment was marked as resolved.

@zjoasan

Copy link
Copy Markdown
MemberAuthor

@ReenigneArcher My "Git-Fu" needs improvements... as do most of my actual coding, that is why I went with remarking any code changes. Due to lack of time, I've left this in this manner. In the hope that someone with more skill with implementing shaders, swapchains and share memory between gpus could take a look at it.

Ps. I hope to have time to get back to Swedish translation on your software, when things calm down in my personal life.

@zjoasanzjoasan added help wanted Extra attention is needed Draft not yet mature enough for merging labels Feb 1, 2026
@zjoasanzjoasan changed the title DO NOT COMMIT in current state read msgShader logic and example shaders, needs work. No MERGEFeb 1, 2026
@ReenigneArcher

This comment was marked as resolved.

@zjoasan
zjoasan marked this pull request as draft February 1, 2026 13:59
@zjoasan

Copy link
Copy Markdown
MemberAuthor

Thanks again!

Load HLSL or CSO shaders from the configured shader directory during swapchain processing so the PR's shader work changes the virtual display output.
Remove the dead generated shader blobs and stale shader scaffolding, and restore the docs and install script behavior reviewers need to validate it.
Made-with: Cursor
Resolve the remaining README and script conflicts so PR VirtualDrivers#462 can merge cleanly while preserving the tested runtime shader implementation.
Made-with: Cursor
Resolve the WDK header and library directories from the actual runner installation so CI does not assume a single Windows Kits layout. This lets the project consume those overrides for x64 and ARM64 so the indirect display headers and stub libraries stay aligned in CI.
Made-with: Cursor
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Draftnot yet mature enough for merginghelp wantedExtra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@zjoasan@ReenigneArcher@itsmikethetech