summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/video_core/engines/maxwell_3d.h63
1 files changed, 32 insertions, 31 deletions
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h
index 71afa3ed3..564acbc53 100644
--- a/src/video_core/engines/maxwell_3d.h
+++ b/src/video_core/engines/maxwell_3d.h
@@ -1473,37 +1473,6 @@ private:
1473 1473
1474 void ProcessMethodCall(u32 method, u32 argument, u32 nonshadow_argument, bool is_last_call); 1474 void ProcessMethodCall(u32 method, u32 argument, u32 nonshadow_argument, bool is_last_call);
1475 1475
1476 Core::System& system;
1477 MemoryManager& memory_manager;
1478
1479 VideoCore::RasterizerInterface* rasterizer = nullptr;
1480
1481 /// Start offsets of each macro in macro_memory
1482 std::array<u32, 0x80> macro_positions = {};
1483
1484 std::array<bool, Regs::NUM_REGS> mme_inline{};
1485
1486 /// Macro method that is currently being executed / being fed parameters.
1487 u32 executing_macro = 0;
1488 /// Parameters that have been submitted to the macro call so far.
1489 std::vector<u32> macro_params;
1490
1491 /// Interpreter for the macro codes uploaded to the GPU.
1492 std::unique_ptr<MacroEngine> macro_engine;
1493
1494 static constexpr u32 null_cb_data = 0xFFFFFFFF;
1495 struct {
1496 std::array<std::array<u32, 0x4000>, 16> buffer;
1497 u32 current{null_cb_data};
1498 u32 id{null_cb_data};
1499 u32 start_pos{};
1500 u32 counter{};
1501 } cb_data_state;
1502
1503 Upload::State upload_state;
1504
1505 bool execute_on{true};
1506
1507 /// Retrieves information about a specific TIC entry from the TIC buffer. 1476 /// Retrieves information about a specific TIC entry from the TIC buffer.
1508 Texture::TICEntry GetTICEntry(u32 tic_index) const; 1477 Texture::TICEntry GetTICEntry(u32 tic_index) const;
1509 1478
@@ -1562,6 +1531,38 @@ private:
1562 1531
1563 /// Returns a query's value or an empty object if the value will be deferred through a cache. 1532 /// Returns a query's value or an empty object if the value will be deferred through a cache.
1564 std::optional<u64> GetQueryResult(); 1533 std::optional<u64> GetQueryResult();
1534
1535 Core::System& system;
1536 MemoryManager& memory_manager;
1537
1538 VideoCore::RasterizerInterface* rasterizer = nullptr;
1539
1540 /// Start offsets of each macro in macro_memory
1541 std::array<u32, 0x80> macro_positions{};
1542
1543 std::array<bool, Regs::NUM_REGS> mme_inline{};
1544
1545 /// Macro method that is currently being executed / being fed parameters.
1546 u32 executing_macro = 0;
1547 /// Parameters that have been submitted to the macro call so far.
1548 std::vector<u32> macro_params;
1549
1550 /// Interpreter for the macro codes uploaded to the GPU.
1551 std::unique_ptr<MacroEngine> macro_engine;
1552
1553 static constexpr u32 null_cb_data = 0xFFFFFFFF;
1554 struct CBDataState {
1555 std::array<std::array<u32, 0x4000>, 16> buffer;
1556 u32 current{null_cb_data};
1557 u32 id{null_cb_data};
1558 u32 start_pos{};
1559 u32 counter{};
1560 };
1561 CBDataState cb_data_state;
1562
1563 Upload::State upload_state;
1564
1565 bool execute_on{true};
1565}; 1566};
1566 1567
1567#define ASSERT_REG_POSITION(field_name, position) \ 1568#define ASSERT_REG_POSITION(field_name, position) \