Jump to content

Nvidia tried so hard to stop this

BellLMG

 

Is this the solution to the chip shortage? Using Windows paravirtualization and a some custom scripts makes sharing your GPU power easier than ever.

 

 

Thanks to NZXT for sponsoring this video! Get your custom PC built  with NZXT BLD at: https://nzxt.co/LinusBLD0122

Link to comment
Share on other sites

Link to post
Share on other sites

I wonder if this would allow gaming on cheap mining cards that have no physical outputs like the P106-90?

Link to comment
Share on other sites

Link to post
Share on other sites

I encountered errors when playing games that tries to detect virtualization (Riot Games) so additional tinkering maybe required but I didn't look into it more. Maybe others here might know some solutions.

Link to comment
Share on other sites

Link to post
Share on other sites

INFO   : Opening ISO Windows10.iso...
ERROR  : Cannot bind argument to parameter 'Path' because it is null.
INFO   : Log folder is C:\Users\ADMINI~1\AppData\Local\Temp\Convert-WindowsImage\ec2536db-7e69-4c3f-9e1b-1e39e72f400a
INFO   : Closing ISO...
INFO   : Done.
Failed to create VHDX, stopping script

can't seem to figure this out?

Link to comment
Share on other sites

Link to post
Share on other sites

What's the advantage of using this over multiseat software like Aster v7? Aster v7 also allows you to split your video outputs so you can game on individual monitors locally (probably over network using Moonlight or Parsec too but I haven't tested).

Link to comment
Share on other sites

Link to post
Share on other sites

29 minutes ago, hvzkt9co said:

INFO   : Opening ISO Windows10.iso...
ERROR  : Cannot bind argument to parameter 'Path' because it is null.
INFO   : Log folder is C:\Users\ADMINI~1\AppData\Local\Temp\Convert-WindowsImage\ec2536db-7e69-4c3f-9e1b-1e39e72f400a
INFO   : Closing ISO...
INFO   : Done.
Failed to create VHDX, stopping script

can't seem to figure this out?

Hey. You need to edit the script and modify the SourcePath at the top to match where your ISO is located.

Link to comment
Share on other sites

Link to post
Share on other sites

I got these errors, any idea what went wrong? 

 

Import-Module : The specified module '\Add-VMGpuPartitionAdapterFiles.psm1' was not loaded because no valid module file was found in any module directory.
At line:21 char:1
+ Import-Module $PSSCriptRoot\Add-VMGpuPartitionAdapterFiles.psm1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (\Add-VMGpuPartitionAdapterFiles.psm1:String) [Import-Module], FileNotFoundException
    + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
 
get-content : Cannot find path 'C:\autounattend.xml' because it does not exist.
At line:4233 char:17
+    

$xml = get-content -path $UnattendPath
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\autounattend.xml:String) [Get-Content], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand
 
The property 'value' cannot be found on this object. Verify that the property exists and can be set.
At line:4234 char:5
+     ($xml.unattend.settings.component | where-object {$_.autologon}). ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyNotFound
 
The property 'username' cannot be found on this object. Verify that the property exists and can be set.
At line:4235 char:5
+     ($xml.unattend.settings.component | where-object {$_.autologon}). ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyNotFound
 
The property 'enabled' cannot be found on this object. Verify that the property exists and can be set.
At line:4236 char:5
+     ($xml.unattend.settings.component | where-object {$_.autologon}). ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyNotFound
 
The property 'Group' cannot be found on this object. Verify that the property exists and can be set.
At line:4237 char:5
+     ($xml.unattend.settings.component | where-object {$_.UserAccounts ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyNotFound
 
The property 'Name' cannot be found on this object. Verify that the property exists and can be set.
At line:4238 char:5
+     ($xml.unattend.settings.component | where-object {$_.UserAccounts ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyNotFound
 
The property 'DisplayName' cannot be found on this object. Verify that the property exists and can be set.
At line:4239 char:5
+     ($xml.unattend.settings.component | where-object {$_.UserAccounts ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyNotFound
 
The property 'Value' cannot be found on this object. Verify that the property exists and can be set.
At line:4240 char:5
+     ($xml.unattend.settings.component | where-object {$_.UserAccounts ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyNotFound
 
The property 'Computername' cannot be found on this object. Verify that the property exists and can be set.
At line:4241 char:5
+     ($xml.unattend.settings.component | where-object {$_.Computername ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyNotFound
 
You cannot call a method on a null-valued expression.
At line:4242 char:5
+     $xml.Save("$UnattendPath")
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
 
Convert-WindowsImage : Cannot validate argument on parameter 'UnattendPath'. Cannot bind argument to parameter 'Path' because it is null.
At line:4302 char:146
+ ...  $VhdPath -DiskLayout $DiskLayout -UnattendPath $UnattendPath -GPUNam ...
+                                                     ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Convert-WindowsImage], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Convert-WindowsImage

 

Failed to create VHDX, stopping script

Link to comment
Share on other sites

Link to post
Share on other sites

18 minutes ago, JamesStringer said:

Hey. You need to edit the script and modify the SourcePath at the top to match where your ISO is located.

ISO Path is correct. If it was wrong, it would give wrong ISO error. Something else is broken with the script. I get the same error!

Link to comment
Share on other sites

Link to post
Share on other sites

5 minutes ago, Jacob22 said:

I got these errors, any idea what went wrong? 

 

Import-Module : The specified module '\Add-VMGpuPartitionAdapterFiles.psm1' was not loaded because no valid module file was found in any module directory.
At line:21 char:1
+ Import-Module $PSSCriptRoot\Add-VMGpuPartitionAdapterFiles.psm1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (\Add-VMGpuPartitionAdapterFiles.psm1:String) [Import-Module], FileNotFoundException
    + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
 
get-content : Cannot find path 'C:\autounattend.xml' because it does not exist.
At line:4233 char:17
+    

$xml = get-content -path $UnattendPath

	+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	    + CategoryInfo          : ObjectNotFound: (C:\autounattend.xml:String) [Get-Content], ItemNotFoundException

	    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

	 

	The property 'value' cannot be found on this object. Verify that the property exists and can be set.

	At line:4234 char:5

	+     ($xml.unattend.settings.component | where-object {$_.autologon}). ...

	+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException

	    + FullyQualifiedErrorId : PropertyNotFound

	 

	The property 'username' cannot be found on this object. Verify that the property exists and can be set.

	At line:4235 char:5

	+     ($xml.unattend.settings.component | where-object {$_.autologon}). ...

	+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException

	    + FullyQualifiedErrorId : PropertyNotFound

	 

	The property 'enabled' cannot be found on this object. Verify that the property exists and can be set.

	At line:4236 char:5

	+     ($xml.unattend.settings.component | where-object {$_.autologon}). ...

	+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException

	    + FullyQualifiedErrorId : PropertyNotFound

	 

	The property 'Group' cannot be found on this object. Verify that the property exists and can be set.

	At line:4237 char:5

	+     ($xml.unattend.settings.component | where-object {$_.UserAccounts ...

	+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException

	    + FullyQualifiedErrorId : PropertyNotFound

	 

	The property 'Name' cannot be found on this object. Verify that the property exists and can be set.

	At line:4238 char:5

	+     ($xml.unattend.settings.component | where-object {$_.UserAccounts ...

	+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException

	    + FullyQualifiedErrorId : PropertyNotFound

	 

	The property 'DisplayName' cannot be found on this object. Verify that the property exists and can be set.

	At line:4239 char:5

	+     ($xml.unattend.settings.component | where-object {$_.UserAccounts ...

	+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException

	    + FullyQualifiedErrorId : PropertyNotFound

	 

	The property 'Value' cannot be found on this object. Verify that the property exists and can be set.

	At line:4240 char:5

	+     ($xml.unattend.settings.component | where-object {$_.UserAccounts ...

	+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException

	    + FullyQualifiedErrorId : PropertyNotFound

	 

	The property 'Computername' cannot be found on this object. Verify that the property exists and can be set.

	At line:4241 char:5

	+     ($xml.unattend.settings.component | where-object {$_.Computername ...

	+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException

	    + FullyQualifiedErrorId : PropertyNotFound

	 

	You cannot call a method on a null-valued expression.

	At line:4242 char:5

	+     $xml.Save("$UnattendPath")

	+     ~~~~~~~~~~~~~~~~~~~~~~~~~~

	    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException

	    + FullyQualifiedErrorId : InvokeMethodOnNull

	 

	Convert-WindowsImage : Cannot validate argument on parameter 'UnattendPath'. Cannot bind argument to parameter 'Path' because it is null.

	At line:4302 char:146

	+ ...  $VhdPath -DiskLayout $DiskLayout -UnattendPath $UnattendPath -GPUNam ...

	+                                                     ~~~~~~~~~~~~~

	    + CategoryInfo          : InvalidData: (:) [Convert-WindowsImage], ParameterBindingValidationException

	    + FullyQualifiedErrorId : ParameterArgumentValidationError,Convert-WindowsImage


 

Failed to create VHDX, stopping script

Please follow the instruction of the Github repo, download the zip file, extract it, open copyfilestovm.ps1 in Powershell ISE running as administrator, edit the details at the top in the params section and run the script.

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, WillCodeForFood said:

ISO Path is correct. If it was wrong, it would give wrong ISO error. Something else is broken with the script. I get the same error!

The script tells you the location of the log file, please visit that location and provided it's not too long copy the info here...

Link to comment
Share on other sites

Link to post
Share on other sites

7 minutes ago, JamesStringer said:

The script tells you the location of the log file, please visit that location and provided it's not too long copy the info here...

Resolve-Path : Cannot find path 'H:\sources\install.wim' because it does not exist.
At C:\Easy-GPU-P-main\CopyFilesToVM.ps1:298 char:39
+         [ValidateScript({ Test-Path $(Resolve-Path $_) })]
+                                       ~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (H:\sources\install.wim:String) [Resolve-Path], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.ResolvePathCommand
PS>TerminatingError(Test-Path): "Cannot bind argument to parameter 'Path' because it is null."
ERROR  : Cannot bind argument to parameter 'Path' because it is null.

 

It is trying to use some hardcoded path for some other script which I don't have.

Link to comment
Share on other sites

Link to post
Share on other sites

12 minutes ago, WillCodeForFood said:

ISO Path is correct. If it was wrong, it would give wrong ISO error. Something else is broken with the script. I get the same error!

**********************
Windows PowerShell transcript start
Start time: 20220109135225
Username: DEVMACHINE\Administrator
RunAs User: DEVMACHINE\Administrator
Configuration Name: 
Machine: DEVMACHINE (Microsoft Windows NT 10.0.19043.0)
Host Application: C:\WINDOWS\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe
Process ID: 17188
PSVersion: 5.1.19041.1320
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.19041.1320
BuildVersion: 10.0.19041.1320
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
INFO   : Opening ISO Windows10.iso...
Resolve-Path : Cannot find path 'G:\sources\install.wim' because it does not exist.
At C:\Users\gabri\Documents\Easy-GPU-P-main\Easy-GPU-P-main\CopyFilesToVM.ps1:298 char:39
+         [ValidateScript({ Test-Path $(Resolve-Path $_) })]
+                                       ~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (G:\sources\install.wim:String) [Resolve-Path], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.ResolvePathCommand
PS>TerminatingError(Test-Path): "Cannot bind argument to parameter 'Path' because it is null."
ERROR  : Cannot bind argument to parameter 'Path' because it is null.
INFO   : Log folder is C:\Users\ADMINI~1\AppData\Local\Temp\Convert-WindowsImage\bbc1922f-988d-44c5-add9-4bc9a1429925
INFO   : Closing ISO...
INFO   : Done.
**********************
Windows PowerShell transcript end
End time: 20220109135225
**********************
 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, hvzkt9co said:

**********************
Windows PowerShell transcript start
Start time: 20220109135225
Username: DEVMACHINE\Administrator
RunAs User: DEVMACHINE\Administrator
Configuration Name: 
Machine: DEVMACHINE (Microsoft Windows NT 10.0.19043.0)
Host Application: C:\WINDOWS\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe
Process ID: 17188
PSVersion: 5.1.19041.1320
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.19041.1320
BuildVersion: 10.0.19041.1320
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
INFO   : Opening ISO Windows10.iso...
Resolve-Path : Cannot find path 'G:\sources\install.wim' because it does not exist.
At C:\Users\gabri\Documents\Easy-GPU-P-main\Easy-GPU-P-main\CopyFilesToVM.ps1:298 char:39
+         [ValidateScript({ Test-Path $(Resolve-Path $_) })]
+                                       ~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (G:\sources\install.wim:String) [Resolve-Path], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.ResolvePathCommand
PS>TerminatingError(Test-Path): "Cannot bind argument to parameter 'Path' because it is null."
ERROR  : Cannot bind argument to parameter 'Path' because it is null.
INFO   : Log folder is C:\Users\ADMINI~1\AppData\Local\Temp\Convert-WindowsImage\bbc1922f-988d-44c5-add9-4bc9a1429925
INFO   : Closing ISO...
INFO   : Done.
**********************
Windows PowerShell transcript end
End time: 20220109135225
**********************
 

4 minutes ago, WillCodeForFood said:

Resolve-Path : Cannot find path 'H:\sources\install.wim' because it does not exist.
At C:\Easy-GPU-P-main\CopyFilesToVM.ps1:298 char:39
+         [ValidateScript({ Test-Path $(Resolve-Path $_) })]
+                                       ~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (H:\sources\install.wim:String) [Resolve-Path], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.ResolvePathCommand
PS>TerminatingError(Test-Path): "Cannot bind argument to parameter 'Path' because it is null."
ERROR  : Cannot bind argument to parameter 'Path' because it is null.

 

It is trying to use some hardcoded path for some other script which I don't have.

As per the script readme, you both unfortunately cannot use the Media Creation Tool to make an ISO, please visit the script readme and follow the link to the Rufus Tool Guide that allows you to download a different type of ISO.  The Microsoft page I linked to unfortunately differs for some people and doesn't show a direct link to the ISO for everyone (I see a direct link to ISO).

Link to comment
Share on other sites

Link to post
Share on other sites

18 minutes ago, Yanto3000 said:

@JamesStringerHow can i change the install location?

Nevermind i have sorted it, for anyone wondering it will be installed on your C: drive just copy the whole GPUP folder over to the new drive with the VM shutdown

Link to comment
Share on other sites

Link to post
Share on other sites

Nvidia be like:

Wait, That's Illegal | Know Your Meme

Useful threads: PSU Tier List | Motherboard Tier List | Graphics Card Cooling Tier List ❤️

Baby: MPG X570 GAMING PLUS | AMD Ryzen 9 5900x /w PBO | Corsair H150i Pro RGB | ASRock RX 7900 XTX Phantom Gaming OC (3020Mhz & 2650Memory) | Corsair Vengeance RGB PRO 32GB DDR4 (4x8GB) 3600 MHz | Corsair RM1000x |  WD_BLACK SN850 | WD_BLACK SN750 | Samsung EVO 850 | Kingston A400 |  PNY CS900 | Lian Li O11 Dynamic White | Display(s): Samsung Oddesy G7, ASUS TUF GAMING VG27AQZ 27" & MSI G274F

 

I also drive a volvo as one does being norwegian haha, a volvo v70 d3 from 2016.

Reliability was a key thing and its my second car, working pretty well for its 6 years age xD

Link to comment
Share on other sites

Link to post
Share on other sites

29 minutes ago, JamesStringer said:

As per the script readme, you both unfortunately cannot use the Media Creation Tool to make an ISO, please visit the script readme and follow the link to the Rufus Tool Guide that allows you to download a different type of ISO.  The Microsoft page I linked to unfortunately differs for some people and doesn't show a direct link to the ISO for everyone (I see a direct link to ISO).

You can get a direct link from the Microsoft page if you change the viewport in the web browser (ctrl + shift + M) and reload the page.

image.png

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, Awoocado said:

You can get a direct link from the Microsoft page if you change the viewport in the web browser (ctrl + shift + M) and reload the page.

image.png

Really! Why it was so hard for MS to put it there properly? Omg... It can detect my license which I am using with same outlook account, but still doesn't provide me a link.

Link to comment
Share on other sites

Link to post
Share on other sites

colin had the right idea to split the card, wait isn't that how you do it with PCIe lanes? just cut them in half.

Link to comment
Share on other sites

Link to post
Share on other sites

Why did you not do this on Linux?  Not only have you been able to do this for several years the installation are much easier.

Link to comment
Share on other sites

Link to post
Share on other sites

@JamesStringer I succesfully installed it and all, however, while I do see the GPU in the device manager, it seems to be the microsoft basic driver just renamed ?

 

Hardware ID:   

Quote

PCI\VEN_1414\DEV_008E

 

Did I miss something? 

 

image.thumb.png.c78c9fac51f7d6c41039e3ec5e281b76.png

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, pmcnano said:

@JamesStringer I succesfully installed it and all, however, while I do see the GPU in the device manager, it seems to be the microsoft basic driver just renamed ?

 

Did I miss something? 

 

image.thumb.png.c78c9fac51f7d6c41039e3ec5e281b76.png

That's how it should look, you don't actually get an NVIDIA driver on the VM, instead you get a Microsoft driver that is kind of like a "symbolic link" to the NVIDIA driver/hardware on the host.  

Link to comment
Share on other sites

Link to post
Share on other sites

If GPU prices were to remain permanently high, or climb even higher, this concept can be quite useful for arcades or cyber cafes.

My eyes see the past…

My camera lens sees the present…

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×