In ps_input you can use POSITION0, choosing one or another has to do with interpolation
Concerning Compiler Targets:
Look at Shader movel ps_4_0_level_9_1 doesn't allow reading from position semantics. too ![]()
About SV_POSITION and when to use it:
Semantics - Win32 apps | Microsoft Learn says:
The pixel location (x,y) in screen space. To convert a Direct3D 9 shader (that uses this semantic) to a Direct3D 10 and later shader, see Direct3D 9 VPOS and Direct3D 10 SV_Position)
Also, have a look at "‘Semantics Supported Only for Direct3D 10 and Newer.’
What is the technique you are currently trying to use ?
Have you tried with a simple:
‘’‘return float4(1.0, 0, 0, 0);’‘’
to see if it draws red ?