Lines Matching refs:dirty
1019 * @dirty: The closure structure.
1024 static void vmw_sou_surface_fifo_commit(struct vmw_kms_dirty *dirty)
1027 container_of(dirty, typeof(*sdirty), base);
1028 struct vmw_kms_sou_dirty_cmd *cmd = dirty->cmd;
1029 s32 trans_x = dirty->unit->crtc.x - sdirty->dst_x;
1030 s32 trans_y = dirty->unit->crtc.y - sdirty->dst_y;
1031 size_t region_size = dirty->num_hits * sizeof(SVGASignedRect);
1035 if (!dirty->num_hits) {
1036 vmw_fifo_commit(dirty->dev_priv, 0);
1058 cmd->body.destScreenId = dirty->unit->unit;
1061 for (i = 0; i < dirty->num_hits; ++i, ++blit) {
1068 vmw_fifo_commit(dirty->dev_priv, region_size + sizeof(*cmd));
1077 * @dirty: The closure structure
1082 static void vmw_sou_surface_clip(struct vmw_kms_dirty *dirty)
1085 container_of(dirty, typeof(*sdirty), base);
1086 struct vmw_kms_sou_dirty_cmd *cmd = dirty->cmd;
1090 blit += dirty->num_hits;
1091 blit->left = dirty->unit_x1;
1092 blit->top = dirty->unit_y1;
1093 blit->right = dirty->unit_x2;
1094 blit->bottom = dirty->unit_y2;
1097 sdirty->left = min_t(s32, sdirty->left, dirty->unit_x1);
1098 sdirty->top = min_t(s32, sdirty->top, dirty->unit_y1);
1099 sdirty->right = max_t(s32, sdirty->right, dirty->unit_x2);
1100 sdirty->bottom = max_t(s32, sdirty->bottom, dirty->unit_y2);
1102 dirty->num_hits++;
1122 * @crtc: If crtc is passed, perform surface dirty on that crtc only.
1185 * @dirty: The closure structure.
1189 static void vmw_sou_bo_fifo_commit(struct vmw_kms_dirty *dirty)
1191 if (!dirty->num_hits) {
1192 vmw_fifo_commit(dirty->dev_priv, 0);
1196 vmw_fifo_commit(dirty->dev_priv,
1198 dirty->num_hits);
1204 * @dirty: The closure structure
1208 static void vmw_sou_bo_clip(struct vmw_kms_dirty *dirty)
1210 struct vmw_kms_sou_bo_blit *blit = dirty->cmd;
1212 blit += dirty->num_hits;
1214 blit->body.destScreenId = dirty->unit->unit;
1215 blit->body.srcOrigin.x = dirty->fb_x;
1216 blit->body.srcOrigin.y = dirty->fb_y;
1217 blit->body.destRect.left = dirty->unit_x1;
1218 blit->body.destRect.top = dirty->unit_y1;
1219 blit->body.destRect.right = dirty->unit_x2;
1220 blit->body.destRect.bottom = dirty->unit_y2;
1221 dirty->num_hits++;
1238 * @crtc: If crtc is passed, perform bo dirty on that crtc only.
1255 struct vmw_kms_dirty dirty;
1271 dirty.crtc = crtc;
1272 dirty.fifo_commit = vmw_sou_bo_fifo_commit;
1273 dirty.clip = vmw_sou_bo_clip;
1274 dirty.fifo_reserve_size = sizeof(struct vmw_kms_sou_bo_blit) *
1277 0, 0, num_clips, increment, &dirty);
1295 * @dirty: The closure structure.
1299 static void vmw_sou_readback_fifo_commit(struct vmw_kms_dirty *dirty)
1301 if (!dirty->num_hits) {
1302 vmw_fifo_commit(dirty->dev_priv, 0);
1306 vmw_fifo_commit(dirty->dev_priv,
1308 dirty->num_hits);
1314 * @dirty: The closure structure
1318 static void vmw_sou_readback_clip(struct vmw_kms_dirty *dirty)
1320 struct vmw_kms_sou_readback_blit *blit = dirty->cmd;
1322 blit += dirty->num_hits;
1324 blit->body.srcScreenId = dirty->unit->unit;
1325 blit->body.destOrigin.x = dirty->fb_x;
1326 blit->body.destOrigin.y = dirty->fb_y;
1327 blit->body.srcRect.left = dirty->unit_x1;
1328 blit->body.srcRect.top = dirty->unit_y1;
1329 blit->body.srcRect.right = dirty->unit_x2;
1330 blit->body.srcRect.bottom = dirty->unit_y2;
1331 dirty->num_hits++;
1361 struct vmw_kms_dirty dirty;
1377 dirty.crtc = crtc;
1378 dirty.fifo_commit = vmw_sou_readback_fifo_commit;
1379 dirty.clip = vmw_sou_readback_clip;
1380 dirty.fifo_reserve_size = sizeof(struct vmw_kms_sou_readback_blit) *
1383 0, 0, num_clips, 1, &dirty);