Home
last modified time | relevance | path

Searched refs:intel (Results 1 – 25 of 586) sorted by relevance

12345678910>>...24

/external/chromium_org/third_party/mesa/src/src/mesa/drivers/dri/intel/
Dintel_batchbuffer.c41 static void clear_cache( struct intel_context *intel ) in clear_cache() argument
43 struct cached_batch_item *item = intel->batch.cached_items; in clear_cache()
51 intel->batch.cached_items = NULL; in clear_cache()
55 intel_batchbuffer_init(struct intel_context *intel) in intel_batchbuffer_init() argument
57 intel_batchbuffer_reset(intel); in intel_batchbuffer_init()
59 if (intel->gen >= 6) { in intel_batchbuffer_init()
64 intel->batch.workaround_bo = drm_intel_bo_alloc(intel->bufmgr, in intel_batchbuffer_init()
71 intel_batchbuffer_reset(struct intel_context *intel) in intel_batchbuffer_reset() argument
73 if (intel->batch.last_bo != NULL) { in intel_batchbuffer_reset()
74 drm_intel_bo_unreference(intel->batch.last_bo); in intel_batchbuffer_reset()
[all …]
Dintel_context.c69 const struct intel_context *const intel = intel_context(ctx); in intelGetString() local
79 switch (intel->intelScreen->deviceID) { in intelGetString()
245 intel_downsample_for_dri2_flush(struct intel_context *intel, in intel_downsample_for_dri2_flush() argument
248 if (intel->gen < 6) { in intel_downsample_for_dri2_flush()
270 intel_miptree_downsample(intel, rb->mt); in intel_downsample_for_dri2_flush()
277 struct intel_context *intel = intel_context(ctx); in intel_flush_front() local
278 __DRIcontext *driContext = intel->driContext; in intel_flush_front()
280 __DRIscreen *const screen = intel->intelScreen->driScrnPriv; in intel_flush_front()
282 if (_mesa_is_winsys_fbo(ctx->DrawBuffer) && intel->front_buffer_dirty) { in intel_flush_front()
294 intel_downsample_for_dri2_flush(intel, driDrawable); in intel_flush_front()
[all …]
Dintel_batchbuffer.h28 void intel_batchbuffer_init(struct intel_context *intel);
29 void intel_batchbuffer_reset(struct intel_context *intel);
30 void intel_batchbuffer_free(struct intel_context *intel);
31 void intel_batchbuffer_save_state(struct intel_context *intel);
32 void intel_batchbuffer_reset_to_saved(struct intel_context *intel);
34 int _intel_batchbuffer_flush(struct intel_context *intel,
37 #define intel_batchbuffer_flush(intel) \ argument
38 _intel_batchbuffer_flush(intel, __FILE__, __LINE__)
46 void intel_batchbuffer_data(struct intel_context *intel,
49 bool intel_batchbuffer_emit_reloc(struct intel_context *intel,
[all …]
Dintel_buffer_objects.c48 intel_bufferobj_alloc_buffer(struct intel_context *intel, in intel_bufferobj_alloc_buffer() argument
51 intel_obj->buffer = drm_intel_bo_alloc(intel->bufmgr, "bufferobj", in intel_bufferobj_alloc_buffer()
122 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_data() local
156 intel_bufferobj_alloc_buffer(intel, intel_obj); in intel_bufferobj_data()
180 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_subdata() local
206 drm_intel_bo_references(intel->batch.bo, intel_obj->buffer); in intel_bufferobj_subdata()
212 intel_bufferobj_alloc_buffer(intel, intel_obj); in intel_bufferobj_subdata()
218 drm_intel_bo_alloc(intel->bufmgr, "subdata temp", size, 64); in intel_bufferobj_subdata()
222 intel_emit_linear_blit(intel, in intel_bufferobj_subdata()
250 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_get_subdata() local
[all …]
/external/chromium_org/third_party/mesa/src/src/mesa/drivers/dri/i915/
Dintel_batchbuffer.c41 static void clear_cache( struct intel_context *intel ) in clear_cache() argument
43 struct cached_batch_item *item = intel->batch.cached_items; in clear_cache()
51 intel->batch.cached_items = NULL; in clear_cache()
55 intel_batchbuffer_init(struct intel_context *intel) in intel_batchbuffer_init() argument
57 intel_batchbuffer_reset(intel); in intel_batchbuffer_init()
59 if (intel->gen >= 6) { in intel_batchbuffer_init()
64 intel->batch.workaround_bo = drm_intel_bo_alloc(intel->bufmgr, in intel_batchbuffer_init()
71 intel_batchbuffer_reset(struct intel_context *intel) in intel_batchbuffer_reset() argument
73 if (intel->batch.last_bo != NULL) { in intel_batchbuffer_reset()
74 drm_intel_bo_unreference(intel->batch.last_bo); in intel_batchbuffer_reset()
[all …]
Dintel_context.c69 const struct intel_context *const intel = intel_context(ctx); in intelGetString() local
79 switch (intel->intelScreen->deviceID) { in intelGetString()
245 intel_downsample_for_dri2_flush(struct intel_context *intel, in intel_downsample_for_dri2_flush() argument
248 if (intel->gen < 6) { in intel_downsample_for_dri2_flush()
270 intel_miptree_downsample(intel, rb->mt); in intel_downsample_for_dri2_flush()
277 struct intel_context *intel = intel_context(ctx); in intel_flush_front() local
278 __DRIcontext *driContext = intel->driContext; in intel_flush_front()
280 __DRIscreen *const screen = intel->intelScreen->driScrnPriv; in intel_flush_front()
282 if (_mesa_is_winsys_fbo(ctx->DrawBuffer) && intel->front_buffer_dirty) { in intel_flush_front()
294 intel_downsample_for_dri2_flush(intel, driDrawable); in intel_flush_front()
[all …]
Dintel_tris.c65 intel_flush_inline_primitive(struct intel_context *intel) in intel_flush_inline_primitive() argument
67 GLuint used = intel->batch.used - intel->prim.start_ptr; in intel_flush_inline_primitive()
69 assert(intel->prim.primitive != ~0); in intel_flush_inline_primitive()
76 intel->batch.map[intel->prim.start_ptr] = in intel_flush_inline_primitive()
77 _3DPRIMITIVE | intel->prim.primitive | (used - 2); in intel_flush_inline_primitive()
82 intel->batch.used = intel->prim.start_ptr; in intel_flush_inline_primitive()
85 intel->prim.primitive = ~0; in intel_flush_inline_primitive()
86 intel->prim.start_ptr = 0; in intel_flush_inline_primitive()
87 intel->prim.flush = 0; in intel_flush_inline_primitive()
90 static void intel_start_inline(struct intel_context *intel, uint32_t prim) in intel_start_inline() argument
[all …]
Dintel_buffer_objects.c48 intel_bufferobj_alloc_buffer(struct intel_context *intel, in intel_bufferobj_alloc_buffer() argument
51 intel_obj->buffer = drm_intel_bo_alloc(intel->bufmgr, "bufferobj", in intel_bufferobj_alloc_buffer()
122 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_data() local
156 intel_bufferobj_alloc_buffer(intel, intel_obj); in intel_bufferobj_data()
180 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_subdata() local
206 drm_intel_bo_references(intel->batch.bo, intel_obj->buffer); in intel_bufferobj_subdata()
212 intel_bufferobj_alloc_buffer(intel, intel_obj); in intel_bufferobj_subdata()
218 drm_intel_bo_alloc(intel->bufmgr, "subdata temp", size, 64); in intel_bufferobj_subdata()
222 intel_emit_linear_blit(intel, in intel_bufferobj_subdata()
250 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_get_subdata() local
[all …]
/external/mesa3d/src/mesa/drivers/dri/i965/
Dintel_batchbuffer.c41 static void clear_cache( struct intel_context *intel ) in clear_cache() argument
43 struct cached_batch_item *item = intel->batch.cached_items; in clear_cache()
51 intel->batch.cached_items = NULL; in clear_cache()
55 intel_batchbuffer_init(struct intel_context *intel) in intel_batchbuffer_init() argument
57 intel_batchbuffer_reset(intel); in intel_batchbuffer_init()
59 if (intel->gen >= 6) { in intel_batchbuffer_init()
64 intel->batch.workaround_bo = drm_intel_bo_alloc(intel->bufmgr, in intel_batchbuffer_init()
71 intel_batchbuffer_reset(struct intel_context *intel) in intel_batchbuffer_reset() argument
73 if (intel->batch.last_bo != NULL) { in intel_batchbuffer_reset()
74 drm_intel_bo_unreference(intel->batch.last_bo); in intel_batchbuffer_reset()
[all …]
Dintel_context.c69 const struct intel_context *const intel = intel_context(ctx); in intelGetString() local
79 switch (intel->intelScreen->deviceID) { in intelGetString()
245 intel_downsample_for_dri2_flush(struct intel_context *intel, in intel_downsample_for_dri2_flush() argument
248 if (intel->gen < 6) { in intel_downsample_for_dri2_flush()
270 intel_miptree_downsample(intel, rb->mt); in intel_downsample_for_dri2_flush()
277 struct intel_context *intel = intel_context(ctx); in intel_flush_front() local
278 __DRIcontext *driContext = intel->driContext; in intel_flush_front()
280 __DRIscreen *const screen = intel->intelScreen->driScrnPriv; in intel_flush_front()
282 if (_mesa_is_winsys_fbo(ctx->DrawBuffer) && intel->front_buffer_dirty) { in intel_flush_front()
294 intel_downsample_for_dri2_flush(intel, driDrawable); in intel_flush_front()
[all …]
Dintel_buffer_objects.c48 intel_bufferobj_alloc_buffer(struct intel_context *intel, in intel_bufferobj_alloc_buffer() argument
51 intel_obj->buffer = drm_intel_bo_alloc(intel->bufmgr, "bufferobj", in intel_bufferobj_alloc_buffer()
122 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_data() local
156 intel_bufferobj_alloc_buffer(intel, intel_obj); in intel_bufferobj_data()
180 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_subdata() local
206 drm_intel_bo_references(intel->batch.bo, intel_obj->buffer); in intel_bufferobj_subdata()
212 intel_bufferobj_alloc_buffer(intel, intel_obj); in intel_bufferobj_subdata()
218 drm_intel_bo_alloc(intel->bufmgr, "subdata temp", size, 64); in intel_bufferobj_subdata()
222 intel_emit_linear_blit(intel, in intel_bufferobj_subdata()
250 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_get_subdata() local
[all …]
Dbrw_vtbl.c68 static void brw_destroy_context( struct intel_context *intel ) in brw_destroy_context() argument
70 struct brw_context *brw = brw_context(&intel->ctx); in brw_destroy_context()
84 drm_intel_gem_context_destroy(intel->hw_ctx); in brw_destroy_context()
98 brw_update_draw_buffer(struct intel_context *intel) in brw_update_draw_buffer() argument
100 struct gl_context *ctx = &intel->ctx; in brw_update_draw_buffer()
131 intel->NewGLState |= (_NEW_DEPTH | _NEW_STENCIL); in brw_update_draw_buffer()
136 intel->NewGLState |= _NEW_BUFFERS; in brw_update_draw_buffer()
139 intel->NewGLState |= _NEW_VIEWPORT | _NEW_SCISSOR; in brw_update_draw_buffer()
144 intel->NewGLState |= _NEW_POLYGON; in brw_update_draw_buffer()
155 static void brw_finish_batch(struct intel_context *intel) in brw_finish_batch() argument
[all …]
/external/chromium_org/third_party/mesa/src/src/mesa/drivers/dri/i965/
Dintel_batchbuffer.c41 static void clear_cache( struct intel_context *intel ) in clear_cache() argument
43 struct cached_batch_item *item = intel->batch.cached_items; in clear_cache()
51 intel->batch.cached_items = NULL; in clear_cache()
55 intel_batchbuffer_init(struct intel_context *intel) in intel_batchbuffer_init() argument
57 intel_batchbuffer_reset(intel); in intel_batchbuffer_init()
59 if (intel->gen >= 6) { in intel_batchbuffer_init()
64 intel->batch.workaround_bo = drm_intel_bo_alloc(intel->bufmgr, in intel_batchbuffer_init()
71 intel_batchbuffer_reset(struct intel_context *intel) in intel_batchbuffer_reset() argument
73 if (intel->batch.last_bo != NULL) { in intel_batchbuffer_reset()
74 drm_intel_bo_unreference(intel->batch.last_bo); in intel_batchbuffer_reset()
[all …]
Dintel_context.c69 const struct intel_context *const intel = intel_context(ctx); in intelGetString() local
79 switch (intel->intelScreen->deviceID) { in intelGetString()
245 intel_downsample_for_dri2_flush(struct intel_context *intel, in intel_downsample_for_dri2_flush() argument
248 if (intel->gen < 6) { in intel_downsample_for_dri2_flush()
270 intel_miptree_downsample(intel, rb->mt); in intel_downsample_for_dri2_flush()
277 struct intel_context *intel = intel_context(ctx); in intel_flush_front() local
278 __DRIcontext *driContext = intel->driContext; in intel_flush_front()
280 __DRIscreen *const screen = intel->intelScreen->driScrnPriv; in intel_flush_front()
282 if (_mesa_is_winsys_fbo(ctx->DrawBuffer) && intel->front_buffer_dirty) { in intel_flush_front()
294 intel_downsample_for_dri2_flush(intel, driDrawable); in intel_flush_front()
[all …]
Dintel_buffer_objects.c48 intel_bufferobj_alloc_buffer(struct intel_context *intel, in intel_bufferobj_alloc_buffer() argument
51 intel_obj->buffer = drm_intel_bo_alloc(intel->bufmgr, "bufferobj", in intel_bufferobj_alloc_buffer()
122 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_data() local
156 intel_bufferobj_alloc_buffer(intel, intel_obj); in intel_bufferobj_data()
180 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_subdata() local
206 drm_intel_bo_references(intel->batch.bo, intel_obj->buffer); in intel_bufferobj_subdata()
212 intel_bufferobj_alloc_buffer(intel, intel_obj); in intel_bufferobj_subdata()
218 drm_intel_bo_alloc(intel->bufmgr, "subdata temp", size, 64); in intel_bufferobj_subdata()
222 intel_emit_linear_blit(intel, in intel_bufferobj_subdata()
250 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_get_subdata() local
[all …]
Dbrw_vtbl.c68 static void brw_destroy_context( struct intel_context *intel ) in brw_destroy_context() argument
70 struct brw_context *brw = brw_context(&intel->ctx); in brw_destroy_context()
84 drm_intel_gem_context_destroy(intel->hw_ctx); in brw_destroy_context()
98 brw_update_draw_buffer(struct intel_context *intel) in brw_update_draw_buffer() argument
100 struct gl_context *ctx = &intel->ctx; in brw_update_draw_buffer()
131 intel->NewGLState |= (_NEW_DEPTH | _NEW_STENCIL); in brw_update_draw_buffer()
136 intel->NewGLState |= _NEW_BUFFERS; in brw_update_draw_buffer()
139 intel->NewGLState |= _NEW_VIEWPORT | _NEW_SCISSOR; in brw_update_draw_buffer()
144 intel->NewGLState |= _NEW_POLYGON; in brw_update_draw_buffer()
155 static void brw_finish_batch(struct intel_context *intel) in brw_finish_batch() argument
[all …]
Dbrw_misc_state.c48 struct intel_context *intel = &brw->intel; in upload_drawing_rect() local
49 struct gl_context *ctx = &intel->ctx; in upload_drawing_rect()
78 struct intel_context *intel = &brw->intel; in upload_binding_table_pointers() local
112 struct intel_context *intel = &brw->intel; in upload_gen6_binding_table_pointers() local
147 struct intel_context *intel = &brw->intel; in upload_pipelined_state_pointers() local
149 if (intel->gen == 5) { in upload_pipelined_state_pointers()
158 OUT_RELOC(intel->batch.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, in upload_pipelined_state_pointers()
161 OUT_RELOC(brw->intel.batch.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, in upload_pipelined_state_pointers()
165 OUT_RELOC(brw->intel.batch.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, in upload_pipelined_state_pointers()
167 OUT_RELOC(brw->intel.batch.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, in upload_pipelined_state_pointers()
[all …]
/external/mesa3d/src/mesa/drivers/dri/i915/
Dintel_batchbuffer.c41 static void clear_cache( struct intel_context *intel ) in clear_cache() argument
43 struct cached_batch_item *item = intel->batch.cached_items; in clear_cache()
51 intel->batch.cached_items = NULL; in clear_cache()
55 intel_batchbuffer_init(struct intel_context *intel) in intel_batchbuffer_init() argument
57 intel_batchbuffer_reset(intel); in intel_batchbuffer_init()
59 if (intel->gen >= 6) { in intel_batchbuffer_init()
64 intel->batch.workaround_bo = drm_intel_bo_alloc(intel->bufmgr, in intel_batchbuffer_init()
71 intel_batchbuffer_reset(struct intel_context *intel) in intel_batchbuffer_reset() argument
73 if (intel->batch.last_bo != NULL) { in intel_batchbuffer_reset()
74 drm_intel_bo_unreference(intel->batch.last_bo); in intel_batchbuffer_reset()
[all …]
Dintel_context.c69 const struct intel_context *const intel = intel_context(ctx); in intelGetString() local
79 switch (intel->intelScreen->deviceID) { in intelGetString()
245 intel_downsample_for_dri2_flush(struct intel_context *intel, in intel_downsample_for_dri2_flush() argument
248 if (intel->gen < 6) { in intel_downsample_for_dri2_flush()
270 intel_miptree_downsample(intel, rb->mt); in intel_downsample_for_dri2_flush()
277 struct intel_context *intel = intel_context(ctx); in intel_flush_front() local
278 __DRIcontext *driContext = intel->driContext; in intel_flush_front()
280 __DRIscreen *const screen = intel->intelScreen->driScrnPriv; in intel_flush_front()
282 if (_mesa_is_winsys_fbo(ctx->DrawBuffer) && intel->front_buffer_dirty) { in intel_flush_front()
294 intel_downsample_for_dri2_flush(intel, driDrawable); in intel_flush_front()
[all …]
Dintel_tris.c65 intel_flush_inline_primitive(struct intel_context *intel) in intel_flush_inline_primitive() argument
67 GLuint used = intel->batch.used - intel->prim.start_ptr; in intel_flush_inline_primitive()
69 assert(intel->prim.primitive != ~0); in intel_flush_inline_primitive()
76 intel->batch.map[intel->prim.start_ptr] = in intel_flush_inline_primitive()
77 _3DPRIMITIVE | intel->prim.primitive | (used - 2); in intel_flush_inline_primitive()
82 intel->batch.used = intel->prim.start_ptr; in intel_flush_inline_primitive()
85 intel->prim.primitive = ~0; in intel_flush_inline_primitive()
86 intel->prim.start_ptr = 0; in intel_flush_inline_primitive()
87 intel->prim.flush = 0; in intel_flush_inline_primitive()
90 static void intel_start_inline(struct intel_context *intel, uint32_t prim) in intel_start_inline() argument
[all …]
Dintel_buffer_objects.c48 intel_bufferobj_alloc_buffer(struct intel_context *intel, in intel_bufferobj_alloc_buffer() argument
51 intel_obj->buffer = drm_intel_bo_alloc(intel->bufmgr, "bufferobj", in intel_bufferobj_alloc_buffer()
122 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_data() local
156 intel_bufferobj_alloc_buffer(intel, intel_obj); in intel_bufferobj_data()
180 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_subdata() local
206 drm_intel_bo_references(intel->batch.bo, intel_obj->buffer); in intel_bufferobj_subdata()
212 intel_bufferobj_alloc_buffer(intel, intel_obj); in intel_bufferobj_subdata()
218 drm_intel_bo_alloc(intel->bufmgr, "subdata temp", size, 64); in intel_bufferobj_subdata()
222 intel_emit_linear_blit(intel, in intel_bufferobj_subdata()
250 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_get_subdata() local
[all …]
/external/mesa3d/src/mesa/drivers/dri/intel/
Dintel_batchbuffer.c41 static void clear_cache( struct intel_context *intel ) in clear_cache() argument
43 struct cached_batch_item *item = intel->batch.cached_items; in clear_cache()
51 intel->batch.cached_items = NULL; in clear_cache()
55 intel_batchbuffer_init(struct intel_context *intel) in intel_batchbuffer_init() argument
57 intel_batchbuffer_reset(intel); in intel_batchbuffer_init()
59 if (intel->gen >= 6) { in intel_batchbuffer_init()
64 intel->batch.workaround_bo = drm_intel_bo_alloc(intel->bufmgr, in intel_batchbuffer_init()
71 intel_batchbuffer_reset(struct intel_context *intel) in intel_batchbuffer_reset() argument
73 if (intel->batch.last_bo != NULL) { in intel_batchbuffer_reset()
74 drm_intel_bo_unreference(intel->batch.last_bo); in intel_batchbuffer_reset()
[all …]
Dintel_context.c69 const struct intel_context *const intel = intel_context(ctx); in intelGetString() local
79 switch (intel->intelScreen->deviceID) { in intelGetString()
245 intel_downsample_for_dri2_flush(struct intel_context *intel, in intel_downsample_for_dri2_flush() argument
248 if (intel->gen < 6) { in intel_downsample_for_dri2_flush()
270 intel_miptree_downsample(intel, rb->mt); in intel_downsample_for_dri2_flush()
277 struct intel_context *intel = intel_context(ctx); in intel_flush_front() local
278 __DRIcontext *driContext = intel->driContext; in intel_flush_front()
280 __DRIscreen *const screen = intel->intelScreen->driScrnPriv; in intel_flush_front()
282 if (_mesa_is_winsys_fbo(ctx->DrawBuffer) && intel->front_buffer_dirty) { in intel_flush_front()
294 intel_downsample_for_dri2_flush(intel, driDrawable); in intel_flush_front()
[all …]
Dintel_batchbuffer.h28 void intel_batchbuffer_init(struct intel_context *intel);
29 void intel_batchbuffer_reset(struct intel_context *intel);
30 void intel_batchbuffer_free(struct intel_context *intel);
31 void intel_batchbuffer_save_state(struct intel_context *intel);
32 void intel_batchbuffer_reset_to_saved(struct intel_context *intel);
34 int _intel_batchbuffer_flush(struct intel_context *intel,
37 #define intel_batchbuffer_flush(intel) \ argument
38 _intel_batchbuffer_flush(intel, __FILE__, __LINE__)
46 void intel_batchbuffer_data(struct intel_context *intel,
49 bool intel_batchbuffer_emit_reloc(struct intel_context *intel,
[all …]
Dintel_buffer_objects.c48 intel_bufferobj_alloc_buffer(struct intel_context *intel, in intel_bufferobj_alloc_buffer() argument
51 intel_obj->buffer = drm_intel_bo_alloc(intel->bufmgr, "bufferobj", in intel_bufferobj_alloc_buffer()
122 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_data() local
156 intel_bufferobj_alloc_buffer(intel, intel_obj); in intel_bufferobj_data()
180 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_subdata() local
206 drm_intel_bo_references(intel->batch.bo, intel_obj->buffer); in intel_bufferobj_subdata()
212 intel_bufferobj_alloc_buffer(intel, intel_obj); in intel_bufferobj_subdata()
218 drm_intel_bo_alloc(intel->bufmgr, "subdata temp", size, 64); in intel_bufferobj_subdata()
222 intel_emit_linear_blit(intel, in intel_bufferobj_subdata()
250 struct intel_context *intel = intel_context(ctx); in intel_bufferobj_get_subdata() local
[all …]

12345678910>>...24