namkazy
30112fcb3c
maxwell_3d: init shadow_state
2020-03-22 13:35:11 +07:00
namkazy
e89c5935f4
maxwell_3d: this seem more correct.
2020-03-22 12:02:54 +07:00
namkazy
854fb1ed2b
maxwell_3d: update comments for shadow ram usage
2020-03-22 11:35:26 +07:00
Nguyen Dac Nam
771d117869
maxwell_3d: track shadow ram ctrl and hw reg value
2020-03-22 10:53:41 +07:00
Nguyen Dac Nam
f2d9dacfed
maxwell_3d: implement MME shadow RAM
2020-03-22 10:53:35 +07:00
ReinUsesLisp
07b52b1307
kepler_compute: Remove unused variables
2020-03-18 20:03:19 -03:00
Rodrigo Locatti
944d38efc8
Merge pull request #3502 from namkazt/patch-3
...
shader_decode: Reimplement BFE instructions
2020-03-15 21:23:04 -03:00
ReinUsesLisp
bba58f7272
shader/shader_ir: Track usage in input attribute and of legacy varyings
2020-03-15 21:01:52 -03:00
ReinUsesLisp
e7dfc5d8a3
maxwell_3d: Add padding words to XFB entries
...
Use INSERT_UNION_PADDING_WORDS instead of alignas to ensure a size
requirement.
2020-03-13 18:33:05 -03:00
ReinUsesLisp
fcc4b81079
gl_rasterizer: Implement transform feedback bindings
2020-03-13 18:33:04 -03:00
Rodrigo Locatti
e836473754
Merge branch 'master' into shader-purge
2020-03-13 16:44:06 -03:00
Nguyen Dac Nam
3f688622d7
shader_bytecode: update BFE instructions struct.
2020-03-13 12:52:16 +07:00
ReinUsesLisp
96fdbc638a
gl_rasterizer: Implement polygon modes and fill rectangles
2020-03-09 20:39:58 -03:00
ReinUsesLisp
207b9ba28c
engines/maxwell_3d: Add TFB registers and store them in shader registry
2020-03-09 18:40:53 -03:00
ReinUsesLisp
7a93d38e0f
const_buffer_engine_interface: Store component types
...
This is required for Vulkan. Sampling integer textures with float
handles is illegal.
2020-03-09 18:40:53 -03:00
ReinUsesLisp
2eb2855b05
state_tracker: Remove type traits with named structures
2020-02-28 17:56:43 -03:00
ReinUsesLisp
31daa97fce
maxwell_3d: Use two tables instead of three for dirty flags
2020-02-28 17:56:42 -03:00
ReinUsesLisp
e94ea8758d
maxwell_3d: Change write dirty flags to a bitset
2020-02-28 17:56:42 -03:00
ReinUsesLisp
95596b787e
maxwell_3d: Flatten cull and front face registers
2020-02-28 17:56:41 -03:00
ReinUsesLisp
005f5ca883
video_core: Reintroduce dirty flags infrastructure
2020-02-28 17:56:41 -03:00
ReinUsesLisp
8b76fc1fff
gl_state: Remove clip distances tracking
2020-02-28 17:26:26 -03:00
ReinUsesLisp
b810da8400
gl_state: Remove viewport and depth range tracking
2020-02-28 17:25:18 -03:00
ReinUsesLisp
c2d3732176
gl_rasterizer: Remove dirty flags
2020-02-28 16:39:27 -03:00
bunnei
80e577e2a6
Merge pull request #3425 from ReinUsesLisp/layered-framebuffer
...
texture_cache: Implement layered framebuffer attachments
2020-02-24 10:14:50 -05:00
bunnei
5c5b6cf721
Merge pull request #3414 from ReinUsesLisp/maxwell-3d-draw
...
maxwell_3d: Unify draw methods
2020-02-19 16:13:50 -05:00
Fernando Sahmkow
d67c538d68
Merge pull request #3409 from ReinUsesLisp/host-queries
...
query_cache: Implement a query cache and query 21 (samples passed)
2020-02-18 11:31:06 -04:00
ReinUsesLisp
505f30fdaf
texture_cache: Implement layered framebuffer attachments
...
Layered framebuffer attachments is a feature that allows applications to
write attach layered textures to a single attachment. What layer the
fragments are written to is decided from the shader using gl_Layer.
2020-02-16 04:19:32 -03:00
ReinUsesLisp
518a6182f9
maxwell_3d: Unify draw methods
...
Pass instanced state of a draw invocation as an argument instead of
having two separate virtual methods.
2020-02-14 18:09:40 -03:00
ReinUsesLisp
d8a42816d7
gl_query_cache: Optimize query cache
...
Use a custom cache instead of relying on a ranged cache.
2020-02-14 17:38:27 -03:00
ReinUsesLisp
339a227a5e
gl_query_cache: Implement host queries using a deferred cache
...
Instead of waiting immediately for executed commands, defer the query
until the guest CPU reads it. This way we get closer to what the guest
program is doing.
To archive this we have to build a dependency queue, because host APIs
(like OpenGL and Vulkan) use ranged queries instead of counters like
NVN.
Waiting for queries implicitly uses fences and this requires a command
being queued, otherwise the driver will lock waiting until a timeout. To
fix this when there are no commands queued, we explicitly call glFlush.
2020-02-14 17:33:13 -03:00
ReinUsesLisp
11206f8a28
maxwell_3d: Slow implementation of passed samples (query 21)
...
Implements GL_SAMPLES_PASSED by waiting immediately for queries.
2020-02-14 17:27:17 -03:00
bunnei
082ba6fc64
Merge pull request #3379 from ReinUsesLisp/cbuf-offset
...
shader/decode: Fix constant buffer offsets
2020-02-14 13:22:53 -05:00
bunnei
12b89ac3d0
Merge pull request #3395 from FernandoS27/queries
...
GPU: Refactor queries implementation and correct GPU Clock.
2020-02-13 20:18:26 -05:00
Fernando Sahmkow
2dd9d660e3
GPU: Address Feedback.
2020-02-13 18:16:07 -04:00
bunnei
840326a322
Merge pull request #3376 from ReinUsesLisp/point-sprite
...
gl_rasterizer: Implement GL_POINT_SPRITE
2020-02-11 08:26:07 -05:00
Fernando Sahmkow
04c3213a01
GPU: Implement GPU Clock correctly.
2020-02-10 10:44:54 -04:00
Fernando Sahmkow
8137fb8981
Maxwell3D: Correct query reporting.
2020-02-10 10:41:43 -04:00
bunnei
a47f0ff68b
Merge pull request #3372 from ReinUsesLisp/fix-back-stencil
...
maxwell_3d: Fix stencil back mask
2020-02-09 22:29:28 -05:00
bunnei
5160900bec
Merge pull request #3369 from ReinUsesLisp/shf
...
shader/shift: Implement SHF
2020-02-07 22:06:57 -05:00
ReinUsesLisp
389cb51a33
shader/decode: Fix constant buffer offsets
...
Some instances were using cbuf34.offset instead of cbuf34.GetOffset().
This returned the an invalid offset. Address those instances and rename
offset to "shifted_offset" to avoid future bugs.
2020-02-05 12:19:09 -03:00
bunnei
a683c3c57c
Merge pull request #3357 from ReinUsesLisp/bfi-rc
...
shader/bfi: Implement register-constant buffer variant
2020-02-04 15:14:13 -05:00
ReinUsesLisp
3c7276cd1a
gl_rasterizer: Implement GL_POINT_SPRITE
...
OpenGL core defaults to GL_POINT_SPRITE, meanwhile on OpenGL
compatibility we have to explicitly enable it. This fixes
gl_PointCoord's behaviour.
2020-02-04 15:19:45 -03:00
bunnei
223e535f65
Merge pull request #3356 from ReinUsesLisp/fcmp
...
shader/arithmetic: Implement FCMP
2020-02-04 11:36:59 -05:00
ReinUsesLisp
1eef76d7b6
maxwell_3d: Fix stencil back mask
2020-02-02 17:50:46 -03:00
bunnei
1de7f0beeb
Merge pull request #3282 from FernandoS27/indexed-samplers
...
Partially implement Indexed samplers in general and specific code in GLSL
2020-02-01 20:41:40 -05:00
ReinUsesLisp
0ff3ea3188
shader/shift: Implement SHF_LEFT_{IMM,R}
...
Shifts a pair of registers to the left and returns the high register.
2020-02-01 21:19:44 -03:00
ReinUsesLisp
ca61e82f85
shader/bfi: Implement register-constant buffer variant
...
It's the same as the variant that was implemented, but it takes the
operands from another source.
2020-01-27 01:20:38 -03:00
ReinUsesLisp
098218ff4c
shader/arithmetic: Implement FCMP
...
Compares the third operand with zero, then selects between the first and
second.
2020-01-27 01:15:44 -03:00
ReinUsesLisp
0d8f0ad3b3
shader/memory: Implement ATOM.ADD
...
ATOM operates atomically on global memory. For now only add ATOM.ADD
since that's what was found in commercial games.
This asserts for ATOM.ADD.S32 (handling the others as unimplemented),
although ATOM.ADD.U32 shouldn't be any different.
This change forces us to change the default type on SPIR-V storage
buffers from float to uint. We could also alias the buffers, but it's
simpler for now to just use uint. While we are at it, abstract the code
to avoid repetition.
2020-01-26 01:54:24 -03:00
Fernando Sahmkow
5fb7881077
Shader_IR: Allow constant access of guest driver.
2020-01-24 16:43:30 -04:00