i965: Bump aperture tracking to u64
As a prelude to handling large address spaces, first allow ourselves the luxury of handling the full 4G. Reported-by: Andrey Simiklit <asimiklit.work@gmail.com> Cc: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -514,7 +514,7 @@ struct intel_batchbuffer {
|
|||||||
int exec_array_size;
|
int exec_array_size;
|
||||||
|
|
||||||
/** The amount of aperture space (in bytes) used by all exec_bos */
|
/** The amount of aperture space (in bytes) used by all exec_bos */
|
||||||
int aperture_space;
|
uint64_t aperture_space;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
uint32_t *map_next;
|
uint32_t *map_next;
|
||||||
|
@@ -870,7 +870,7 @@ _intel_batchbuffer_flush_fence(struct brw_context *brw,
|
|||||||
bytes_for_commands, 100.0f * bytes_for_commands / BATCH_SZ,
|
bytes_for_commands, 100.0f * bytes_for_commands / BATCH_SZ,
|
||||||
bytes_for_state, 100.0f * bytes_for_state / STATE_SZ,
|
bytes_for_state, 100.0f * bytes_for_state / STATE_SZ,
|
||||||
brw->batch.exec_count,
|
brw->batch.exec_count,
|
||||||
(float) brw->batch.aperture_space / (1024 * 1024),
|
(float) (brw->batch.aperture_space / (1024 * 1024)),
|
||||||
brw->batch.batch_relocs.reloc_count,
|
brw->batch.batch_relocs.reloc_count,
|
||||||
brw->batch.state_relocs.reloc_count);
|
brw->batch.state_relocs.reloc_count);
|
||||||
|
|
||||||
@@ -890,13 +890,6 @@ _intel_batchbuffer_flush_fence(struct brw_context *brw,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
brw_batch_has_aperture_space(struct brw_context *brw, unsigned extra_space)
|
|
||||||
{
|
|
||||||
return brw->batch.aperture_space + extra_space <=
|
|
||||||
brw->screen->aperture_threshold;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
brw_batch_references(struct intel_batchbuffer *batch, struct brw_bo *bo)
|
brw_batch_references(struct intel_batchbuffer *batch, struct brw_bo *bo)
|
||||||
{
|
{
|
||||||
|
@@ -44,8 +44,12 @@ int _intel_batchbuffer_flush_fence(struct brw_context *brw,
|
|||||||
void intel_batchbuffer_data(struct brw_context *brw,
|
void intel_batchbuffer_data(struct brw_context *brw,
|
||||||
const void *data, GLuint bytes);
|
const void *data, GLuint bytes);
|
||||||
|
|
||||||
bool brw_batch_has_aperture_space(struct brw_context *brw,
|
static inline bool
|
||||||
unsigned extra_space_in_bytes);
|
brw_batch_has_aperture_space(struct brw_context *brw, uint64_t extra_space)
|
||||||
|
{
|
||||||
|
return brw->batch.aperture_space + extra_space <=
|
||||||
|
brw->screen->aperture_threshold;
|
||||||
|
}
|
||||||
|
|
||||||
bool brw_batch_references(struct intel_batchbuffer *batch, struct brw_bo *bo);
|
bool brw_batch_references(struct intel_batchbuffer *batch, struct brw_bo *bo);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user