ac/surface: enable DCC for the first level in the mip tail on gfx10
[mesa.git] / src / amd / common / ac_debug.h
index 277025d8b662762a07e4e15a121ea42f5505764f..ffcba8755364f23efca7fe026b774934af8ac91f 100644 (file)
  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- *      Marek Olšák <maraeo@gmail.com>
  */
+
 #ifndef AC_DEBUG_H
 #define AC_DEBUG_H
 
 #define AC_IS_TRACE_POINT(x)            (((x) & 0xcafe0000) == 0xcafe0000)
 #define AC_GET_TRACE_POINT_ID(x)        ((x) & 0xffff)
 
+#define AC_MAX_WAVES_PER_CHIP (64 * 40)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct ac_wave_info {
+       unsigned se; /* shader engine */
+       unsigned sh; /* shader array */
+       unsigned cu; /* compute unit */
+       unsigned simd;
+       unsigned wave;
+       uint32_t status;
+       uint64_t pc; /* program counter */
+       uint32_t inst_dw0;
+       uint32_t inst_dw1;
+       uint64_t exec;
+       bool matched; /* whether the wave is used by a currently-bound shader */
+};
+
 typedef void *(*ac_debug_addr_callback)(void *data, uint64_t addr);
 
-void ac_dump_reg(FILE *file, unsigned offset, uint32_t value,
-                uint32_t field_mask);
+void ac_dump_reg(FILE *file, enum chip_class chip_class, unsigned offset,
+                uint32_t value, uint32_t field_mask);
 void ac_parse_ib_chunk(FILE *f, uint32_t *ib, int num_dw, const int *trace_ids,
                       unsigned trace_id_count, enum chip_class chip_class,
                       ac_debug_addr_callback addr_callback, void *addr_callback_data);
@@ -50,4 +68,11 @@ void ac_parse_ib(FILE *f, uint32_t *ib, int num_dw, const int *trace_ids,
 bool ac_vm_fault_occured(enum chip_class chip_class,
                         uint64_t *old_dmesg_timestamp, uint64_t *out_addr);
 
+unsigned ac_get_wave_info(enum chip_class chip_class,
+                         struct ac_wave_info waves[AC_MAX_WAVES_PER_CHIP]);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif