Some enum values are incompatible with D3D11 #11
Loading…
Reference in New Issue
There is no content yet.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?
While constructing a skeleton for a D3D11 backend I encountered a few enums that don't have a direct translation from Vulkan to D3D (or other rendering APIs, afaik), so I wanted to discuss what to do about them.
D16S8
format. The only supported depth+stencil formats areDXGI_FORMAT_D24_UNORM_S8_UINT
andDXGI_FORMAT_D32_FLOAT_S8X24_UINT
(which is 64 bits in size). Not sure what to do about this one.CULL_FRONT_AND_BACK
. Honestly I'm not really sure when you'd ever want this feature...CONSTANT_ALPHA/ONE_MINUS_CONSTANT_ALPHA
blend factor values. ANGLE was able to emulate this behavior by rewriting the constant color, but I'm not sure if that's a route we want to go down.float[4]
containing color values, whereas Vulkan/Refresh expect an enum value. I'm not sure how to accurately translate theINT_*_BLACK/WHITE
values if we're required to use floats.I'm of the opinion that not much would be lost by removing these values from Refresh's API surface, with the exception of D16S8. What do you think?
First off, thanks for investigating this.
D16S8 can be implemented with D24S8, not a problem.
Yeah that's fine, Point rendering is Bad anyway.
Yeah I honestly have no idea what the use case for this is. Let's take it out.
This is a weird one. I've never used this feature and can't really think of a use case off the top of my head so it's probably fine to not support it.
I really like having more expressive blend modes so I'm reluctant to take this out. Windows 7 is a very small user base at this point so it's probably not much of a loss.
Again, no idea where we'd need this so it's probably fine to take it out.
I'm fine with mandating that colors are floats here.
Sorry, to clarify, do you mean that we should remove the INT_ enums? Or just that in a D3D11 backend we should use floats for all of the border color values, whether they say they're int or not?
I was thinking about taking out the INT enums, I mostly just want to review how colors work in Refresh in general. But if I understand correctly I think if we want to keep ints we can just convert to float by dividing by 255.
Resolved by
61e83cfba8